System.Data.SqlClient删除多条记录

DUCK6 2015-12-28 11:51:10
使用sqlcommand删除多条记录
delete from sometable where id in ('x','y','z')

上述sql语句如何用sqlcommand来实现
string commandtext="delete from sometable where id in(@idlist)";
sqlcommmand.Parameters.Add(new SqlParameter(......))

如何用上述语句来实现删除多条记录?
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DUCK6 2015-12-29
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
至少是 SQL Server 没有 delete from sometable where id in(@idlist) 这种语句。你在哪一个版本的语法说明上看到过呢? 所以就要先找一个有依据的语法,再去问如何编写代码的问题。
参数化的sqlcommand语句,里面可以用@,但是对于删除多条记录,比如:id= ‘aa' 'bb' 'cc' 'dd'不知道如何将这些添加到参数化的sqlcommand语句里面
  • 打赏
  • 举报
回复
至少是 SQL Server 没有 delete from sometable where id in(@idlist) 这种语句。你在哪一个版本的语法说明上看到过呢? 所以就要先找一个有依据的语法,再去问如何编写代码的问题。
threenewbee 2015-12-29
  • 打赏
  • 举报
回复
string[] arr = new string[] { "x", "y", "z" }; string commandtext=string.Format("delete from sometable where id in({0})"string.Join(",", arr.Select(x => "\"" + x + "\"")));
DUCK6 2015-12-29
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
用string.join拼接条件
能具体些吗 是直接拼接sql语句,还是用sqlcommmand.Parameters方式? commandtext中的@变量,怎么处理多个value? 谢谢
gengchenhui 2015-12-29
  • 打赏
  • 举报
回复
引用 5 楼 DUCK6 的回复:
[quote=引用 4 楼 sp1234 的回复:] 至少是 SQL Server 没有 delete from sometable where id in(@idlist) 这种语句。你在哪一个版本的语法说明上看到过呢? 所以就要先找一个有依据的语法,再去问如何编写代码的问题。
参数化的sqlcommand语句,里面可以用@,但是对于删除多条记录,比如:id= ‘aa' 'bb' 'cc' 'dd'不知道如何将这些添加到参数化的sqlcommand语句里面[/quote] 你想多了。。。 你这样的话,sql执行的时候是按照这样的 delete from sometable where id in(['aa','bb','cc','dd']) 你认为这样的语法是对的么???
  • 打赏
  • 举报
回复
可以拼接成一个字符串,就是你第一句的格式直接传入,如果你要采用参数化的方式的话,那么你每个参数都是一个SqlParameter,你可以看下我博客里的AdoHelper,那里面应该有个方法是参数化拼接Sql的
threenewbee 2015-12-28
  • 打赏
  • 举报
回复
用string.join拼接条件

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧