C# не закрывает подключение к БД
Есть 2 формы - с первой вызывается вторая, на которой есть 2 текстовых поля. Заполняем эти поля и жмем кнопку. Должно произойти сохранение в БД и эта форма закрыться. Все работает, но коннекшн к БД продолжает висеть открытым - вижу его в процессах в мониторинге SQL Server. Закрывается только когда я полностью закрою прогу. Код кнопки и подключения ниже:
private void saveButton_Click(object sender, EventArgs e)
{
string connString = "Server = db02; Database = OSD_CRM_IT; Trusted_Connection = True;";
bool result;
using (SqlConnection conn = new SqlConnection(connString))
{
string commText = "INSERT INTO ReporstGold (oldGold, newPlatinum,userLogin,dateInsert)
VALUES (@old, @new,@usr,@date)";
SqlCommand comm = new SqlCommand(commText, conn);
comm.Parameters.AddWithValue("@old", textBox1.Text);
comm.Parameters.AddWithValue("@new", textBox2.Text);
comm.Parameters.AddWithValue("@usr", Environment.UserName);
comm.Parameters.AddWithValue("@date", DateTime.Now);
conn.Open();
try
{
comm.ExecuteNonQuery();
result = true;
}
catch
{
result = false;
}
conn.Close();
}
if (result)
{
MessageBox.Show("Данные успешно добавлены, форма будет закрыта", "Успех");
this.Close();
}
else
{
MessageBox.Show("Добавить не удалось!");
}
Вот так вижу процесс в мониторинге:

Проект на WinForms, .NET 4.6 Должно ли закрываться подключение? Или это нормальное поведение?
Ответы (1 шт):
По умолчанию .NET использует так называемый пул подключений для того, чтобы повысить скорость подключения при коротких обращениях к базе.
Идея в том, что подключение не закрывается сразу, а некоторое время остаётся в открытом состоянии. Если программа попытается подключиться к базе с тем же connection string, вместо нового подключения будет задействовано существующее.
Добавьте в connection string параметр "Pooling=False", чтобы проверить. Подключение после этого должно закрываться сразу.
Подробнее о пуле подключений.