sql:select count(*) from aaa where id in(@keys) and name='my'SqlParameter[] sparm = new SqlParameter[] 
{
new SqlParameter("@keys",SqlDbType.NVarChar,100)
};sparm[0].Value="'123','1235'"为什么 查询不出来记录呢,直接运行sql 没有问题,但是值一旦传入 SqlParameter 貌似就发生了改变求解!!!!SQLC#

解决方案 »

  1.   

    嗯,同问。 id如果是 number 类型则不需要加单引号。
      

  2.   

    不能那样写,参数话查询中无法使用任何特殊含义的字符,对特殊含义字符如单引号都会按照字符本来的内容传递,而不会产生任何特殊含义,否则我写个 "1);DELETE FROM aaa;--"作为@keys的参数值传递进去,你认为是什么结果?如果和拼接字符串一样的效果的话,那就不叫参数化查询了。