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语句该怎么写啊? 展开
new sqlParameters("@id",idList)//idList为传过来的值:1,2,3
但这样报错,把nvachar值转换为int时报错,
批量删除的参数化sql语句该怎么写啊? 展开
7个回答
展开全部
用正则表达式
命名空间
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我 希望彻底帮你解决
命名空间
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我 希望彻底帮你解决
展开全部
建议用存储过程或transaction来执行,你这里的nvarchar转换int的时候报错了,明显是@id的值不匹配造成的,idList里面是string吧?尝试下修改sqlParameter的type。或者把idList里面的值做一下Convert
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类型不匹配吧,你的id的类型是什么,如果传来的1、2、3不加引号会认为是int型的
不知道我理解的是否正确,希望可以帮到你。
不知道我理解的是否正确,希望可以帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql= "exec('delete from table where id in ('+@id+')')";
new sqlParameters("@id",idList)
//这样就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个一个参数设置,@id1,@id2,@id3
也可以拼成串.
(一般in是配合子查询使用的.)
也可以拼成串.
(一般in是配合子查询使用的.)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询