Ответ 1
Нет. Утилизация SqlCommand
не повлияет на соединение. Лучшим подходом было бы также обернуть SqlConnection
в блоке использования:
using (SqlConnection conn = new SqlConnection(connstring))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(cmdstring, conn))
{
cmd.ExecuteNonQuery();
}
}
В противном случае соединение не изменяется из-за того, что команда, которая его использовала, была удалена (может быть, это именно то, что вы хотите?). Но имейте в виду, что соединение должно быть уничтожены, а также, скорее, более важно распоряжаться, чем команда.
EDIT:
Я только что протестировал это:
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 1", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 2", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
conn.Dispose();
Первая команда была удалена при выходе из блока использования. Соединение было еще открытым и хорошим для второй команды.
Итак, утилизация команды определенно не избавляет от используемого соединения.