如何在VB.NET中关闭DataReader?

如何在VB.NET中关闭DataReader?,vb.net,datareader,Vb.net,Datareader,从数据库执行或加载数据列表时遇到错误。已存在与此连接关联的打开的DataReader,必须先关闭该连接。我不知道;我不知道如何修理它。我不知道如何解决这个问题。我打了close博士,但什么也没发生。请帮帮我。如果有人知道。非常感谢你 Dim sqlquery As String = "SELECT * FROM complaint WHERE status='On-process'" Dim sqladapter As New MySqlDataAdapter Dim sqlcmd As New

从数据库执行或加载数据列表时遇到错误。已存在与此连接关联的打开的DataReader,必须先关闭该连接。我不知道;我不知道如何修理它。我不知道如何解决这个问题。我打了close博士,但什么也没发生。请帮帮我。如果有人知道。非常感谢你

Dim sqlquery As String = "SELECT * FROM complaint WHERE status='On-process'"
Dim sqladapter As New MySqlDataAdapter
Dim sqlcmd As New MySqlCommand
Dim table As New DataTable
Dim i As Integer

With sqlcmd
    .CommandText = sqlquery
    .Connection = connectionsrvr
End With

With sqladapter
    .SelectCommand = sqlcmd
    .Fill(table) ------------->this is the error..
End With

For i = 0 To table.Rows.Count - 1
    With lvlistview
        .Items.Add(table.Rows(i)("dte"))
        With .Items(.Items.Count - 1).SubItems
            .Add(table.Rows(i)("tran_no"))
            .Add(table.Rows(i)("comp_type"))
            .Add(table.Rows(i)("status"))
            .Add(table.Rows(i)("sys_name"))
            .Add(table.Rows(i)("mod_name"))
            .Add(table.Rows(i)("err_desc"))
            .Add(table.Rows(i)("trigg"))
            .Add(table.Rows(i)("comp_fname") & " " & table.Rows(i)("comp_lname"))
            .Add(table.Rows(i)("comp_pos"))
        End With
   End With
Next

在本地声明所有数据库对象,而不是在类或全局级别(范围)声明。使用块为实现IDisposable接口的所有对象添加一个
。为每个数据适配器创建一个新连接。好的,先生。非常感谢。我将尝试在何处定义
连接RVR
?更重要的是,您在哪里关闭
连接RVR
?如果您没有关闭以前使用的连接,则会出现错误。连接对象应尽可能靠近其用途。您应该声明您的对象(连接、命令、适配器),打开连接,填充表,关闭连接,并用尽可能少的代码处理非表对象。然后再使用桌子。史蒂文·多加特爵士,成功了!呵呵,非常感谢你!谢谢你的提示。:)大卫爵士,谢谢。我从你们身上学到了很多!非常感谢你!