ADO.NET 的连接池
来源:10-7 【实战】删除数据

香菜骑士
2023-11-18
请问老师:这是向AI提问 ”如何使用 SQL Server 连接池来减少新连接的开销“ 得到的回答,这个回答是否正确的吗?
这是参考回答修改后的代码:
private void Remove_Customer_Click(object sender, RoutedEventArgs e)
{
if (customerList.SelectedValue == null) { return; }
using (SqlConnection connection = new(ConnectionString))
try
{
connection.Open();
string removeAppointmentSql = @"DELETE FROM Appointments
WHERE CustomerId = @CustomerId";
string removeCustomerSql = @"DELETE FROM Customer
WHERE Id = @CustomerId";
var CustomerId = customerList.SelectedValue;
using SqlCommand command1 = new(removeAppointmentSql, connection);
command1.Parameters.AddWithValue("@CustomerId", CustomerId);
command1.ExecuteNonQuery();
using SqlCommand command2 = new(removeCustomerSql, connection);
command2.Parameters.AddWithValue("@CustomerId", CustomerId);
command2.ExecuteNonQuery();
ShowCustomers();
CustomerList_SelectionChanged(null, null);
}
catch (Exception error)
{
MessageBox.Show("异常:" + error);
}
finally
{
connection.Close();
}
}
写回答
1回答
-
对的,ai的回答是完全正确的。在.net中,资源氛围托管(manageed)和非托管(unmanageed)两种。托管型资源可以被.net的垃圾回收机制自动回收,但是非托管型资源必须手动释放,比如数据库连接、文件打开和关闭之类的。但是手动释放资源比较麻烦,而且很容易忘记,那么这个时候我们就可以使用use关键词,保证在执行完代码后让.net自动帮你关闭和释放资源。所以,能用use的情况推荐优先使用use012023-11-18
相似问题