如果你有一个带Sqlaccess的C#函数,是否必须关闭所有对象/句柄,或者在退出函数后自动清理所有内容
例如:
void DoSqlStuff() { SqlConnection sqlConn = new SqlConnection(...); SqlCommand cmd = new SqlCommand(...); SqlDataReader sqlData= null; sqlConn,Open(); sqlData = cmd.ExecutReader(); while(sqlData.Read()) { ... } }
关闭SqlConn和SqlData是可选的,推荐的还是必需的?
谢谢.
您应该在完成后立即关闭SqlConnection对象.如果不这样做,则连接将保持打开状态,并且无法处理其他请求.
using语句对此很有用.它将为您调用对象上的Dispose():
using (SqlConnection cn = new SqlConnection(connectionString)) { SqlCommand cm = new SqlCommand(commandString, cn) cn.Open(); cm.ExecuteNonQuery(); }