【问题标题】: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();

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2023-04-07
    • 2016-12-31
    • 1970-01-01
    • 2023-01-20
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多