【问题标题】:Add a conditional clause to Delete a table's rows matching a list's items添加条件子句以删除与列表项匹配的表行
【发布时间】:2012-02-01 00:41:49
【问题描述】:
我有一个项目列表(包含整数 ID)。我需要删除表 X 的所有行,其 id 列的数据与这些列表项匹配。
我正在使用 sqlite,这是我尝试过的方法
List<int> lstItem=new List<int>();
//add data to lstItem
//....
SqlComm.CommandText="delete from X where id in @lstItem";
【问题讨论】:
标签:
c#
sql
system.data.sqlite
【解决方案1】:
您需要遍历这些项目:
var sbSql = new System.Text.StringBuilder(500);
sbSql.Append("delete from X where id in (");
if (lstItem.Count != 0) {
foreach (int value in lstItem)
{
if (sbSql.Length != 0)
{
sbSql.Append(",");
}
sbSql.Append(value);
}
} else {
sbSql.Append(-1);
}
sbSql.Append(")");
SqlComm.CommandText = sbSql.ToString();