C# SQLselect * from...where 列=变量 要怎么写,一直没法找到

stringsql="select*from商品信息数据表whereszItemID='"+s1+"'";和stringsql="select*from商品信息数据表wh... string sql="select * from 商品信息数据表 where szItemID='" + s1 + "'";和string sql="select * from 商品信息数据表 where szItemID='%s1%'";都不行,S1是string型,表里是nvarchar型,我用
int res; res= comm.ExecuteNonQuery();res>0判断表里已经有这一项,但是试过很多次,不管有没有都是res=-1;
但是 comm = new SqlCommand("insert into 商品信息数据表 values('" + s1 + "','" + s2 + "','" + s3 + "','" + s4 + "')", conn);这句话却是可以的,高手帮忙看看
展开
 我来答
syht2000
高粉答主

2012-11-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
不能用ExecuteNonQuery(),它返回的是update、insert或者delete操作成功的行数,select没有改变数据,所以一直会返回-1的,你应该将sql改为
string sql="select count(*) from 商品信息数据表 where szItemID='" + s1 + "'";
然后将res= comm.ExecuteNonQuery()改为
res= Convert.ToInt32(comm.ExecuteScalar());
然后通过判断这个res是否大于0就行了
更多追问追答
追问
那么这句话呢?comm = new SqlCommand("update 商品信息数据表  set szItemDesc='" + s2 + "',szItemSize='" + s3 + "',szItemColor='" + s4 + "' where szItemID='" + s1 + "')", conn);运行也有问题,麻烦帮忙再看下~~
追答
szItemID应该是数字吧,是数字你就不能加单引号了。建议你改成
sql="update 商品信息数据表 set szItemDesc='" + s2 + "',szItemSize='" + s3 + "',szItemColor='" + s4 + "' where szItemID=" + s1 + ")";
comm = new SqlCommand(sql, conn);
即使再出问题,检查sql的值就行了
蚂蚁棚
2012-11-28 · TA获得超过138个赞
知道答主
回答量:200
采纳率:0%
帮助的人:129万
展开全部
comm.ExecuteNonQuery();是执行sql语句后返回受影响的行数,只有delete\update\insert之类才会有值;select只查询,不影响啊,肯定返回的都是-1了。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式