Возможна ли передача массива в параметр SQL? Если я хочу массово удалить, или проставить статусы списку заказов, как это сделать?
List<int> vals = new List();
vals.Add(1);
vals.Add(2);
using (SqlConnection conn = new SqlConnection(myconn_str))
using (SqlCommand cmd = new SqlCommand(conn,
"delete from order1 where id in (@ids)" ){
cmd.Parametrs.AddWithValue("ids",vals);
cmd.ExecuteNonQuery();
}
Видел что библиотека кристала как-то это умеет делать, кто-нибудь передавал массив параметрически?
Почему бы не использовать простейший вариант:
var vals = new List<int> { 1, 2, 3 };
var ids = string.Join(",", vals);
var sql = $"delete from order1 where id in ({ids})";
Да, есть потенциальная опасность в виде sql-инъекций. Но если мы уверены во входных данных (а в данном случае это целые числа), то угрозы нет.
Например, Entity Framework генерирует аналогичный код (заменяя в строковых литералах '
на ''
).
Проблема может быть только в том случае, когда массив очень велик.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть класс Colum<T>, Есть класс Row со списком List<Colum>И есть проблема, List<Colum> требует указать ещё тип T аки List<Colum<int>>, но мне не нужно...
Я знаю, что Open Server имеет в комплектации консоль, откуда есть доступ к ComposerТем не менее, я бы хотел обойтись без этой консоли и работать с Composer...
есть текст [a]какой то текст[/a] еще куча какого то текста, [a]какой то текст[/a] есть регулярка /(\[a+\/a\])/ если текст без переноса строки, то находит...
Есть у нас сформированный на php масив данных: