SqlDataReader 获取的值为空
代码如下:
myCommand.CommandText = "select tel_no,holder_name,cate_code,a.clubcode,b.sex \n" +
" from card_cardata a \n" +
" inner join mem_member b on a.card_no = b.M_id \n" +
" where card_no ='" + lbCardNo.Text + "'";
SqlDataReader sdr = myCommand.ExecuteReader();
while (sdr.Read())
{
tel_no = sdr["tel_no"].ToString();
holder_name = sdr["holder_name"].ToString();
cate_code = sdr["cate_code"].ToString();
clubcode = sdr["clubcode"].ToString();
sex = sdr["sex"].ToString();
}
sdr.Close();
问题点: sql语句参数获取值都没有问题,调试的时候将sql语句放到查询分析器内,是查得到值的。但是在程序内调试时SqlDataReader 为空。
请各位大神抽空帮忙看看,谢谢
[解决办法]
断点, myCommand.CommandText值 在查询分析器内执行
"select tel_no,holder_name,cate_code,a.clubcode,b.sex from card_cardata a inner join mem_member b on a.card_no = b.M_id where card_no ='" + lbCardNo.Text + "'";
[解决办法]
加\n干嘛?你想换行??
这样
myCommand.CommandText = @"selecttel_no,holder_name,cate_code,a.clubcode,b.sex
from card_cardata a
inner join mem_member b on a.card_no = b.M_id
where card_no ='" + lbCardNo.Text + "'";
[解决办法]
你输出一下myCommand.CommandText的值,看看sql语句是否正确。
[解决办法]
" where card_no ='" + lbCardNo.Text + "'";
你数据库里 card_no 是 什么类型的 字段
如果是 int 的就不要 加 单引号
如果是 NVARCHAR 或 VARCHAR 等其他字符型数据 可以加 单引号