SqlConnection 自动关闭问题

ETstudio 2007-11-28 10:03:00
using (SqlDataReader DataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if(DataReader.Read()
ErrorCode = DataReader.GetInt32(0);
DataReader.Close();
DataReader.Dispose();
}

// DataReader.Close();
// DataReader.Dispose();
SqlConnection 并不会马上关闭,有什么办法解决;
...全文
635 36 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
RKevin 2008-01-05
  • 打赏
  • 举报
回复
kyle315:(应该是连接池打开着的。修改一下数据库连接字符串,加上pooling=false就行了。)

谢谢
深渊的水影 2007-11-29
  • 打赏
  • 举报
回复
清空连接池。。

SQLSERVER
执行

EXEC sp_who



可以看到连接的信息,,


ETstudio 2007-11-29
  • 打赏
  • 举报
回复
楼上答对了
kyle315 2007-11-29
  • 打赏
  • 举报
回复
应该是连接池打开着的。修改一下数据库连接字符串,加上pooling=false就行了。
总哈哈 2007-11-29
  • 打赏
  • 举报
回复
在下面单独一语句进行关闭不行吗?
hamehameha 2007-11-29
  • 打赏
  • 举报
回复
想了解
shoushii 2007-11-29
  • 打赏
  • 举报
回复
using   (SqlConnection   sqlConn   =  SqlConnection) 
{
using (SqlDataReader DataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if(DataReader.Read()
ErrorCode = DataReader.GetInt32(0);
DataReader.Close();
DataReader.Dispose();
}

// DataReader.Close();
// DataReader.Dispose();

}
programmebird 2007-11-29
  • 打赏
  • 举报
回复
参与一下
nanjg 2007-11-29
  • 打赏
  • 举报
回复
DataReader.Dispose(); 什么意思
nanjg 2007-11-29
  • 打赏
  • 举报
回复
之所以不会关闭连接 是因为 之前发生了异常 用我说道方式 是一定会在代码段末尾关闭连接的
nanjg 2007-11-29
  • 打赏
  • 举报
回复
写try catch finally 在最后关闭连接 这种方法比较传统的啊
honey52570 2007-11-29
  • 打赏
  • 举报
回复
接分
bj890 2007-11-29
  • 打赏
  • 举报
回复
public static bool checkpassword(EnUserRegistration us)
{
try
{
string strsql="SELECT * FROM Bm_user WHERE UserName='"+us.username+"' and Password='"+us.password+"'";
if(DBConnection.SerchByDr(strsql).HasRows)
{
return true;
}
else
{
return false;
}
}
catch(Exception es)
{
throw es;
}
finally
{
DBConnection.Dispose();
}
}
哥们试一下这个!
shuang840723 2007-11-29
  • 打赏
  • 举报
回复
释放资源的代码要写在 FINALLY内 才能保证资源的释放
honey52570 2007-11-28
  • 打赏
  • 举报
回复
lz来散分的么??


using (SqlDataReader DataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if(DataReader.Read()
ErrorCode = DataReader.GetInt32(0);

//下面两句是否多余啊,出来using作用域DataReader会自动释放的
DataReader.Close();
DataReader.Dispose();
}



SqlConnection没断 再套一个using嘛
amclap 2007-11-28
  • 打赏
  • 举报
回复
个人觉得这是对using 的理解有偏差,其实当using 语句完后会自动执行引用对象dispose操作;编程人员大可以不去理会。 只有实现dispose接口的对象才允许使用using 语句。所以当using语句执行完毕后会自动释放连接。
qgmzhfj 2007-11-28
  • 打赏
  • 举报
回复
DataReader 继承 Dispose 接口了吗?
ETstudio 2007-11-28
  • 打赏
  • 举报
回复
IV 教训得是, 试验后回来补帖,
boblaw 2007-11-28
  • 打赏
  • 举报
回复
LZ可以寫個簡單的程序來測試一下,就知道了
qgmzhfj 2007-11-28
  • 打赏
  • 举报
回复
学习,我也想知道
加载更多回复(15)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧