首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

ef 批量删除有关问题

2013-09-18 
ef 批量删除问题[codecsharp] public int DeleteAll(string strListIDs){using (csh0067Entities db ne

ef 批量删除问题
[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);

请问一下,我第一种写法错在哪里,谢谢
[解决办法]

 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);
                
            }
        }


[解决办法]
看来你还是直接字符串拼接吧:

http://stackoverflow.com/questions/10780958/executestorequery-and-where-in-0

热点排行