обновить несколько строк, используя список идентификаторов в c# - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть список идентификаторов, и я хочу обновить таблицу базы данных. Я делаю что-то вроде этого:

sql = "update table set col = 'something' where id in (@Ids)"

using (var connection = new SqlConnection(_connection)){
   connection.Query(sql, new { Ids = ids});
}

Ошибка:

System.Data.SqlClient.SqlException: 'Неправильный синтаксис рядом с', '.'

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

простой способ таков:

var parameters = new string[ids.Length];
var cmd = new SqlCommand();
for (int i = 0; i < ids.Length; i++)
{
    parameters[i] = string.Format("@Id{0}", i);
    cmd.Parameters.AddWithValue(parameters[i], ids[i]);
}

  cmd.CommandText = string.Format("update table set col = 'something' where id in ({0})", string.Join(", ", parameters));
0 голосов
/ 20 апреля 2020

Решение: это работает для меня

sql = "update table set col = 'something' where id in ("+string.Join(",", ids) + ");";

using (var connection = new SqlConnection(_connection)){
   connection.Query(sql);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...