SqlCommands довольно легкие. Вы можете создать новый каждый раз.
Существуют сложности с параметризованными командами, когда вам необходимо очистить и сбросить все параметры, и на этом этапе создание новой команды является простым, понятным и эффективным.
Кроме того, обычно нормально использовать новый SqlConnection каждый раз. Автоматическое встроенное объединение соединений - это «магия», которая делает это эффективным.
Я использую это:
public void ExecuteQuery(string query)
{
this.ExecuteQuery(query, null);
}
public void ExecuteQuery(string query, Dictionary<string, object> parameters)
{
using (SqlConnection conn = new SqlConnection(this.connectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = query;
if (parameters != null)
{
foreach (string parameter in parameters.Keys)
{
cmd.Parameters.AddWithValue(parameter, parameters[parameter]);
}
}
cmd.ExecuteNonQuery();
}
}
}