Ответ 1
SqlCommands довольно легкие. Вы можете создавать новый каждый раз.
Есть осложнения с параметризованными командами, где вам нужно очистить и reset все параметры, и в этот момент создание новой команды является чистым, понятным и эффективным.
Кроме того, обычно нормально использовать новый 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();
}
}
}