Обрабатывать необязательные параметры при вызове хранимой процедуры
Постановка задачи.
По сути, я получаю от 3 до 50 параметров, которые возвращаются из веб-службы в виде массива NVP, и мне нужно затем зациклить их, создать параметры команды SQL для каждого и вызвать хранимую процедуру. Есть ли более эффективный способ справиться с этим, чем подход ниже?
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand cm = connection.CreateCommand())
{
cm.CommandText = "MySproc";
cm.CommandType = CommandType.StoredProcedure;
foreach (var field in row)
{
cm.Parameters.AddWithValue("@" + field.Key.ToString(), field.Value.ToString());
}
cm.ExecuteNonQuery();
}
}
1 ответ
Я лично использую ISNULL или COALESCE в предложении WHERE хранимой процедуры. Если только вы не собираетесь делать это внутри вашего C#...