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);这句话却是可以的,高手帮忙看看 展开
int res; res= comm.ExecuteNonQuery();res>0判断表里已经有这一项,但是试过很多次,不管有没有都是res=-1;
但是 comm = new SqlCommand("insert into 商品信息数据表 values('" + s1 + "','" + s2 + "','" + s3 + "','" + s4 + "')", conn);这句话却是可以的,高手帮忙看看 展开
2个回答
展开全部
不能用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就行了
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的值就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询