读书人

ef 批量删除有关问题

发布时间: 2013-09-18 14:17:40 作者: rapoo

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

读书人网 >.NET Framework

热点推荐