Я пытаюсь создать DELETE
заявление, в котором я буду удалять некоторые элементы из таблицы на основе списка идентификаторов, используя IN
пункт:Ошибка преобразования типа данных VARCHAR в BigInt - В статье
DELETE FROM table WHERE id IN (@ids)
Использование SqlCommand
, я делаю следующее, чтобы создать IN
параметр:
public void DeleteItemsByIds(int[] ids) {
Parameters["ids"] = string.Join(", ", ids);
ExecuteNonQuery(deleteStatement, Parameters);
}
Тогда я получаю сообщение об ошибке:
Error converting data type varchar to bigint
Кто-то знает, как я могу его решить?
Спасибо всем!
Ну, 'IN' ожидает ** список (предположительно) значений' BIGINT' **, в то время как то, что вы предоставляете, на самом деле является просто ** одной строкой ** ..... Для SQL Server * * 2008 ** и новее, проверьте ** табличные параметры **, чтобы передать несколько значений в оператор SQL –
Построить всю инструкцию SQL как текст, а не только набор включений, и это должно работать. –
@PieterGeerkens: это ** ужасный ** совет, поскольку он открывает возможность ** SQL-инъекций ** атак ... серьезно - не делайте этого! –