我使用了我的数据库访问代码,如下所示:
//gets the connection and create transaction
SqlTransaction transaction = SelectConnection();
try
{
dsRecordDataset = new DataSet();
SqlParameter[] param = new SqlParameter[1];
string[] taleNames = new string[1];
taleNames[0] = "RecordSet";
param[0] = new SqlParameter("@Mode", Mode);
SqlHelper.FillDataset(transaction, CommandType.StoredProcedure,
"spProject", dsRecordDataset, taleNames, param);
transaction.Commit();
return dsRecordDataset;
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
我发现的问题是我从未关闭过连接,因此连接池有时会溢出并给用户一个错误。我需要澄清以下内容
- 连接池什么时候根据asp.net中的默认设置重置?
- 提交事务与连接有什么关系吗?
在 try catch 块之后我尝试使用以下代码
finally
{
if (transaction.Connection.State == ConnectionState.Open)
{
transaction.Connection.Close();
}
}
但随后连接为空并给出错误。
- 有什么方法可以关闭上面代码中的连接吗?