首先应该给@ID加上括号(string cmdText = "delete from News where ID in (@ID)";
),这样表面是没有语法错误了,但是程序会把ids整个作为字符串解析,然后在执行SQL时自动将ids整个转换为数字,仍然会报错(如果ids只包含一个序号则不会错),也就是说ids是一个整体,所以对于删除多条,可以通过逐条删除、拼接SQL、或者在存储过程中解析等几种方法
你用的什么语言 asp.net?new SqlParameter 你看看里面参数一个是参数名一个是类型,是用的存储过程吗?我通常是sqlcommand cmd = new sqlcommand();cmd.parameters.add(“@id”,sqldbtype.varchar).value=xx;或者SqlParameter sp = new SqlParameter("@id",sqldbtype.varchar);sp.value='"";用法比较多, 感觉你用法有问题?
string cmdText = "delete from News where ID in (".@ID.")";
后面这样修改呢?
string cmdText = "delete from News where ID=@ID";