有表T,列名为BH,该列为自动递增INT型 充当主键用 用做唯一标识
BH  VALUE
1    A
2    A
3    B
4    B有SQL语句 UPDATE T SET VALUE = 'C' WHERE BH IN (2,3) 此句在查询分析器里可以通过执行
但在C#里传参数
UPDATE T SET VALUE = 'C' WHERE BH IN (@BH)
this.SQL1.Parameters.Add(new SqlParameter("@BH", SqlDbType.NVarChar, 200, "BH"))
然后给BH赋字符串S=“2,3” 却不通过 报错在将 nvarchar 值 '2,3‘转换成数据类型 int 时失败。
求解……

解决方案 »

  1.   

    string.Format("UPDATE T SET VALUE = 'C' WHERE BH IN ({0}) ","2,3")
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    在C#里传参数 
    string BH="2,3";
    UPDATE T SET VALUE = 'C' WHERE BH IN (@BH) 
    this.SQL1.Parameters.Add(new SqlParameter("@BH", SqlDbType.NVarChar, 200, BH));