首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySqlConnection确实不是很接近

MySqlConnection确实不是很接近
EN

Stack Overflow用户
提问于 2010-05-22 01:37:24
回答 2查看 934关注 0票数 0

我有个大问题。请看下面的示例代码

代码语言:javascript
复制
private sub FUNCTION1()
      dim conn as new mysqlconnection(myconnstring)
      conn.open
      ---- do something
      FUNCTION2()
      ---- 
      conn.close
end sub

private sub FUNCTION2()
     dim conn as new mysqlconnection(myconnstring)
     .... 
     conn.open
     -- do something
     conn.close
end sub

尽管我定期关闭所有连接,但它们在mysql服务器上仍然是“打开的”。我之所以知道这一点,是因为我正在使用MySQL管理工具来检查我“逐行”打开了多少个源代码连接。事实上,我得到了很多时间“用户已经超过了'max_user_connections‘资源(当前值: 5)”我的主机只允许5个连接,但我认为,如果我写了好的源代码,这不会成为问题。所以我的问题是:为什么“该死的”连接仍然是开放的?提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-22 01:41:13

考虑将您的MySqlConnection操作包装在Using语句中...

在该Using ... new语句中实例化的任何对象都将由编译器正确处理。一旦该End Using语句出现,该对象就会离开作用域。按照常规,在Using块中使用声明的任何对象都需要由开发人员处理。

代码语言:javascript
复制
Using conn As New MySqlConnection(myConnString)
  Using cmd As New MySqlCommand("SELECT * FROM Employees", conn)
    conn.Open()
      Using rdr As MySqlDataReader = cmd.ExecuteReader()
        While rdr.Read()
          Console.WriteLine(rdr(0))
        End While
      End Using
  End Using
End Using

在这种情况下,您不必将命令和阅读器封装在它们自己的Using中,但它允许您利用它们都实现IDisposable这一事实。

票数 1
EN

Stack Overflow用户

发布于 2010-05-22 01:40:57

尝试调用conn.Dispose(),然后将其设置为null。另外,您是否还在Function1和Function2中打开一个连接,因为您似乎正在创建2个连接。如果是这种情况,请尝试实现单例模式来管理您的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档