asp.net参数化SQL语句批量删除怎么写

sql="deletefromtablewhereidin(@id)",newsqlParameters("@id",idList)//idList为传过来的值:1,2,... sql= "delete from table where id in (@id)",
new sqlParameters("@id",idList)//idList为传过来的值:1,2,3
但这样报错,把nvachar值转换为int时报错,
批量删除的参数化sql语句该怎么写啊?
展开
 我来答
石门程序猿
2013-09-27 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:92.1万
展开全部
用正则表达式
命名空间
using System.Text.RegularExpressions;
//转换参数
string id = Regex.Replace(@id, @",", "','");//切割逗号也就是将,改成','
//编写SQL语句
string sql= "delete from table where id in ("+'id'+")"
//执行sql
也就是这种转换后也就是
sql= "delete from table where id in ('1','2','3')"
这样就可以了 不明白的HI我 希望彻底帮你解决
denveryang3633
2013-09-27 · TA获得超过266个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:155万
展开全部
建议用存储过程或transaction来执行,你这里的nvarchar转换int的时候报错了,明显是@id的值不匹配造成的,idList里面是string吧?尝试下修改sqlParameter的type。或者把idList里面的值做一下Convert
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nchsxx234
2013-09-27 · TA获得超过411个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:98.6万
展开全部
类型不匹配吧,你的id的类型是什么,如果传来的1、2、3不加引号会认为是int型的
不知道我理解的是否正确,希望可以帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落月Prc
2013-09-27 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2431万
展开全部
sql= "exec('delete from table where id in ('+@id+')')";
new sqlParameters("@id",idList)
//这样就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
watercity0
2013-09-27
知道答主
回答量:20
采纳率:0%
帮助的人:3.8万
展开全部
一个一个参数设置,@id1,@id2,@id3
也可以拼成串.

(一般in是配合子查询使用的.)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式