1 回答
TA贡献1856条经验 获得超5个赞
问题是由这一行(以及以下命令中的类似行)引起的
SqlCommand cmdCU = new SqlCommand(........, Helper.ConnectionToDB());
我敢打赌,每次调用Helper.ConnectionToDB 时都会创建 SqlConnection 对象的新实例。
现在,即使你有这条线
Helper.ConnectionToDB().Open();
您正在打开一个连接实例,但是由于该命令再次调用Helper.ConnectionToDB,您在每个命令中获得了一个不同的实例并在仍然关闭时使用它。
你需要一种完全不同的方法
.... previous stuff....
if (ucRegister1.AllFieldsValidated() == true)
{
string[] details = ucRegister1.ReturnRegisterDetails();
using(SqlConnection cnn = Helper.ConnectionToDB())
{
cnn.Open();
SqlCommand cmdCU = new SqlCommand("......", cnn);
.... replace all calls to Helper.ConnectionDB with the cnn variable ....
.....
} // <== This close the connection
}
using 语句可帮助您控制 SqlConnection 及其使用的资源。SqlConnection 是一个一次性对象,重要的非托管资源链接到它。尽快释放这些资源非常重要,using 语句保证当代码退出 using 块时,SqlConnection 将被关闭并释放资源。
- 1 回答
- 0 关注
- 66 浏览
添加回答
举报