Добавить условное предложение для удаления строк таблицы, соответствующих элементам списка - PullRequest
2 голосов
/ 02 января 2012

У меня есть список предметов (содержащий целочисленные идентификаторы).Мне нужно удалить все строки таблицы X, чьи данные столбца id совпадают с этими элементами списка.Я использую sqlite и вот как я попробовал

List<int> lstItem=new List<int>();
//add data to lstItem
//....
SqlComm.CommandText="delete from X where id in @lstItem";

1 Ответ

0 голосов
/ 02 января 2012

Вам нужно перебрать пункты:

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();
...