【问题标题】:ExecuteReader requires an open and available Connection. The connection's current state is openExecuteReader 需要一个开放且可用的连接。连接的当前状态为打开
【发布时间】:2013-04-20 14:09:29
【问题描述】:

我目前收到错误:

ExecuteReader 需要一个打开且可用的连接。连接的当前状态是打开的。

这是我的代码:

db.conn 的类

Public Class db
    Public Shared conn As SqlConnection = db.getsqlconn("ezondb")



    Public Shared Function getsqlconn(ByVal whichdb As String) As SqlConnection
        Dim connstring As String = ConfigurationManager.ConnectionStrings(whichdb).ConnectionString
        Return New SqlConnection(connstring)
    End Function



Dim Macomm = db.selectcommand(db.conn, "*", "categories", "idparentcategory=1")
Dim Mada As New SqlDataAdapter(Macomm)
Dim Mat As New DataTable
Mada.Fill(Mat)

【问题讨论】:

  • 请向我们展示更多代码。你在哪里打开连接?
  • 我添加了更多代码。
  • 在代码中显示连接未打开。

标签: sql vb.net connection


【解决方案1】:

我不会将连接声明为Shared

Public Shared conn As SqlConnection = db.getsqlconn("ezondb")

在需要时打开连接,然后立即关闭。

【讨论】:

    【解决方案2】:

    getsqlconn方法只是返回一个新的sqlconnection对象实例,需要调用open方法显式打开连接

    【讨论】:

    • 你能举个例子吗?我正在从 php 切换到 .net。这对我来说相当新。
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多