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

C# SQLselect * from...where 列=变量 要怎么写,一直没法找到
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);这句话却是可以的,高手帮忙看看

你写的第一句应该可以用
string sql="select * from 商品信息数据表 where szItemID='" + s1 + "'";

但是你不能用res= comm.ExecuteNonQuery()来判断是否已有这一项。ExecuteNonQuery返回的是被更改的行数(包括insert, delete和update)

有几种办法来做这件事:
1。用SqlDataReader reader = comm.ExecuteReader();
然后
while (reader.Read())
{
// 只要读到一行就知道有这一项了
}
2。建立SqlDataAdapter,用它来填充一个DataTable,然后直接读取rows.count
3。把SQL 命令改称select count(*) .... 然后读取第一行、第一列的数值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-28
前一句如同楼上的, where szItemID='%s1%',这个模糊查询需要用到like关键字,where szItemID like '%s1%'。
第2个回答  2012-11-28
把S1.trim()一下有可能是多空格 了