我的代码如下,请问出了什么问题,为会么调试的时候老是显示:
ExecuteNonQuery 需要打开的并且可用的连接。该连接的当前状态是 Closed
不是已经有一个mycommand.Connection.Open()语句了吗?
Dim str As String
        Dim ip As String
        Dim sex As String
       
        str = "Update guestbook SET 版主回复 ='" & TxtReply.Text & "',回复时间 ='" & System.DateTime.Now & "'"
 
        Dim conn As OleDbConnection
        conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("images/mdb.mdb"))        Dim mycommand As New OleDbCommand        mycommand.CommandText = str
        mycommand.Connection = conn        mycommand.Connection.Open()
               mycommand.ExecuteNonQuery()
        mycommand.Connection.Close()
        mycommand.Connection.Dispose()
        If mycommand.ExecuteNonQuery = 1 Then
            Response.Write("数据库插入成功")
        End If

解决方案 »

  1.   

    mycommand.ExecuteNonQuery()
            mycommand.Connection.Close()
            mycommand.Connection.Dispose()
            If mycommand.ExecuteNonQuery = 1 Then
                Response.Write("数据库插入成功")
            End If
    错了,应该改为
    Dim result As Int32
    result  = mycommand.ExecuteNonQuery()
            mycommand.Connection.Close()
            mycommand.Connection.Dispose()
            If result   = 1 Then
                Response.Write("数据库插入成功")
            End If
      

  2.   

    “ExecuteNonQuery 需要打开的并且可用的连接。该连接的当前状态是 Closed”这个问题已经解决但新问题又来了,表面上看好像没有什么问题,实际了运行了也好好的
    但我进数据库查了一下,数据并没有插入呀?????
    这又是怎么回事?????
      

  3.   

    楼主是进行的更新数据操作,并没有进行插入操作“ExecuteNonQuery 需要打开的并且可用的连接。该连接的当前状态是 Closed”这个问题已经解决这个问题怎么解决的
      

  4.   

    str = "Update guestbook SET 版主回复 ='" & TxtReply.Text & "',回复时间 ='" & System.DateTime.Now & "'"没有插入新的数据.
    查一下是否update成功.
      

  5.   

    在ExecuteNonQuery()之前加上句mycommand.connection.open();
      

  6.   

    提示需要再次open连接的原因在于楼主下面这个:If mycommand.ExecuteNonQuery = 1 Then
       Response.Write("数据库插入成功")
    End If这句执行的时候其实又重新Execute了一次,但是这时connection已经被之前的代码close了,du9232帮忙解决的方法就是不要写两次ExecuteNonQuery。
      

  7.   

    if (myConnection.State ==ConnectionState.Close )
    {
    myConnection.Open ();
    }
    用这句判断是否打开了数据库链接,然后再看看你写的SQL插入语句与更新语句是否执行了
      

  8.   

    “update“ 是不插入数据的。
    可以在调试状态跟踪mycommand.CommandText内容
      

  9.   

    在执行对应的数据库操作前要显式调用connection对象的open()方法
    ...
    conn.Open()
    cmd.Connection = conn
    cmd.CommandText = str
    ...
      

  10.   

    建议把mycommand.CommandText内容拿出来放在sql查询分析器里执行一下