有志者、事竟成,破釜沉舟,百百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

拂晓犬吠

学习中遇到困难是很正常的事情,不要苦恼,不要气馁,恰恰相反,应该兴奋,因为又学到知识了,需要不断提高自己应对问题和解决问题的能力和信心。

没有想到先是这个对象ExcuteScalar

  

  ExcuteScalar();

  返回单个值(查询返回的结果集中第一行的第一列)

 

  我的业务是

  有个设备请求我的网站,请求post的数据是(设备ID)

  我的网站拿着设备ID去,数据库中查找。

 

  于是,我这个方法ExcuteScalar,写了有聚合函数的sql,返回的第一行第一列是0(按说是要大于0的)

  因为是聚合函数的sql,所以第一行第一列是有值的。

  (PS,ExcuteScalar返回是Object类型,所以查找的结果集第一行第一列没有值的话,返回的Object是什么?null吗?)

  (PS,所以ExcuteScalar最好是用聚合函数sql的执行,这样返回的结果集第一行第一列,是有值的,不会返回null)

 

  按照ADO.NET的推荐用法,有参数的sql要使用SqlParameter,结果我使用有参数的这中方式,得到的第一行第一列是0(按照应该是大于0的数字)

  问题是因为:

  是 select Count(1) from table where deviceId='@deviceId';不能加''(单引号)

  select Count(1) from table where deviceId=@deviceId;这样是正确返回结果的sql语句

  

  查看到这个哥们问题反映,感谢

  https://bbs.csdn.net/topics/230030943

posted @ 2020-12-30 17:02  ID拂晓犬吠  阅读(84)  评论(0)    收藏  举报