C# - 关闭Sql对象的最佳实践

LeJ*_*une 11 c# sql

如果你有一个带Sqlaccess的C#函数,是否必须关闭所有对象/句柄,或者在退出函数后自动清理所有内容

例如:

void DoSqlStuff()
{
    SqlConnection sqlConn = new SqlConnection(...);
    SqlCommand cmd = new SqlCommand(...);
    SqlDataReader sqlData= null;

    sqlConn,Open();
    sqlData = cmd.ExecutReader();


    while(sqlData.Read())
    {
         ...
    }
}
Run Code Online (Sandbox Code Playgroud)

关闭SqlConn和SqlData是可选的,推荐的还是必需的?

谢谢.

Kev*_*ghe 25

您应该在完成后立即关闭SqlConnection对象.如果不这样做,则连接将保持打开状态,并且无法处理其他请求.

using语句对此很有用.它将为您调用对象上的Dispose():

using (SqlConnection cn = new SqlConnection(connectionString))
{   
    SqlCommand cm = new SqlCommand(commandString, cn)
    cn.Open();
    cm.ExecuteNonQuery();       
}
Run Code Online (Sandbox Code Playgroud)