做删除时遇到这么一个情况,当我idString传入值是单个值如:1或2或3的时候可以执行成功
但是当我传入 1,2,3,4,5 这样的字符串是就不会成功 为什么呢???string sql = "update SellData set isDel=1 where ID in ( @idstring )";
OleDbParameter op = new OleDbParameter("@idstring", OleDbType.VarChar, 200);
op.Value = idString;
如果是int必须是idString="1,2,3";
打上断点,看你的idString
string sql = "update SellData set isDel=1 where ID in ( "+ idString + " )";
如果 ID a,b,c,d 是字符型的 记得 都加 "a","b","c","d" 号. 数值型可以不加
也就是说他会在SellData中找ID等于"1,2,3,4"的记录,而不是找ID分别等于1,等于2,等于3等于4的记录。
而单个id的时候转成字符串还是一个id所以能查出来
charindex(','+id+',', ',1,2,3,4,11,')
string sql = "update SellData set isDel=1 where ID in (‘1,2,3,4,5’)";
所以会错
string sql = "update SellData set isDel=1 where ID in (1,2,3,4,5)";