ef 批量删除问题

lizhengqin 2013-07-11 03:41:51
[code=csharp]
public int DeleteAll(string strListIDs)
{
using (csh0067Entities db = new csh0067Entities())
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@CodeID",SqlDbType.NVarChar,100)
};
pars[0].Value = strListIDs;

string strSql="delete from InviteCode where CodeID in( @CodeID)";
//string strSql = "delete from InviteCode where CodeID in( " + strListIDs + ")";
return db.ExecuteStoreCommand(strSql, pars);

}
}
[/code

上面的代码删除一条数据正常,删除多条数据就报错了,是我写的语法有问题吗

如果我把最后2行代码修改成下面代码,也就正确了

string strSql = "delete from InviteCode where CodeID in( " + strListIDs + ")";
return db.ExecuteStoreCommand(strSql, null);

请问一下,我第一种写法错在哪里,谢谢
...全文
301 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhengqin 2013-07-11
  • 打赏
  • 举报
回复
看了你提供的网址,好像也是拼接字符串 谢谢楼上
q107770540 2013-07-11
  • 打赏
  • 举报
回复
lizhengqin 2013-07-11
  • 打赏
  • 举报
回复
和我的第一种写法报相同错误

如果我传进去的值:45 程序正常,如果,我传进去是: 45,67,23 就报错

在将 nvarchar 值 ' 45,67,23' 转换成数据类型 int 时失败。
q107770540 2013-07-11
  • 打赏
  • 举报
回复
 public int DeleteAll(string strListIDs)
        {
            using (csh0067Entities db = new csh0067Entities())
            {
                var pars = new DbParameter[]{
			new SqlParameter{ParameterName ="@CodeID",Value = strListIDs}	
		};
                

                string strSql="delete from InviteCode where CodeID in (@CodeID)";
              
                return db.ExecuteStoreCommand(strSql, pars);
                
            }
        }

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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