MySqlCommand.Parameters.Add()不能正确执行

beihua 2017-08-21 11:57:20
如果直接拼接是可以正常返回结果的cmmd.CommandText = "select uid,upswd from table1 where uid='"+username+"'";
但是,下面使用@参数的方法不能正确执行,不知道什么原因?
con.Open();
MySqlCommand cmmd = con.CreateCommand();
cmmd.CommandText = "select uid,upswd from table1 where uid=@UserName";
cmmd.Parameters.Add(new MySqlParameter("@UserName", username));//username为当前函数的参数
MySqlDataAdapter dataAdp = new MySqlDataAdapter(cmmd);
DataSet dataSet = new DataSet();
dataAdp.Fill(dataSet);
DataTable dataTbl = dataSet.Tables[0];
int rcrdRowCount = dataTbl.Rows.Count;
执行后, rcrdRowCount 总是为0,实际上表中是有对应数据的,why?
...全文
358 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
荔枝大娘 2021-04-25
  • 打赏
  • 举报
回复
你好 请问你问题解决了吗? 我这边也遇到同样的问题
  • 打赏
  • 举报
回复
AddParameter 时没有 @ 符号。
gaoyang348 2017-08-22
  • 打赏
  • 举报
回复
断点测一下 username 的值是否正确
gaoyang348 2017-08-22
  • 打赏
  • 举报
回复
cmd.CommandText = “select * from table where id=@ID"; cmd.parameters.add(new sqlParameters("ID", "11")); 这样就等于: cmd.CommandText = “select * from table where id=11";
oneloveisyi 2017-08-22
  • 打赏
  • 举报
回复
添加参数前提是需要实例化一个sqlParameter的类,去百度一下它的使用方法,很多的。
beihua 2017-08-22
  • 打赏
  • 举报
回复
引用 6 楼 wang_peng_yl 的回复:
我觉得应该是你的username 值有问题 你试一下 select uid,upswd from table1 where uid like @UserName cmmd.Parameters.Add(new MySqlParameter("@UserName", "%" + username + "%"));
加百分号,试了,不行;另外,username值肯定是正确的,因为放到单引号里拼接sql是可以正确返回的
beihua 2017-08-22
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
AddParameter 时没有 @ 符号。
改成:cmmd.Parameters.Add(new MySqlParameter("UserName", username));还是不行
wang_peng_yl 2017-08-22
  • 打赏
  • 举报
回复
我觉得应该是你的username 值有问题 你试一下 select uid,upswd from table1 where uid like @UserName cmmd.Parameters.Add(new MySqlParameter("@UserName", "%" + username + "%"));
beihua 2017-08-22
  • 打赏
  • 举报
回复
引用 3 楼 gaoyang348 的回复:
断点测一下 username 的值是否正确
username值是正确的,因为直接放到单引号里拼接,是可以得到记录条件为1的

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧