【问题标题】:VB.NET reader is closedVB.NET 阅读器已关闭
【发布时间】:2015-03-12 04:29:35
【问题描述】:

我的代码允许我使用数据库中的客户详细信息向客户发送电子邮件。

Try
            mysqlconn.Open()
            GetEmailCredentials(credentials)
            query = "SELECT First_name, surname, email_address FROM customer,booking WHERE booking.BookingID='" & y & "' AND customer.customerID=booking.customerID"
            command = New MySqlCommand(query, mysqlconn)
            MsgBox("ref1")
            reader = command.ExecuteReader
            MsgBox("ref2")
            While reader.Read()
                MsgBox("ref3")
                Try
                    MsgBox(reader.GetString("email_address") & reader.GetString("First_name") & reader.GetString("surname"))
                    MsgBox("ref4")
                    Dim emailmessage As New MailMessage()
                    emailmessage.From = New MailAddress(credentials(0))
                    emailmessage.To.Add(reader.GetString("email_address"))
                    emailmessage.Subject = "EHCC Booking"
                    emailmessage.Body = "Hello " & reader.GetString("First_name") & " " & reader.GetString("surname") & Environment.NewLine & "One of your bookings has been deleted." & Environment.NewLine & "Please contact me for further details."
                    Dim smtp As New SmtpClient("smtp.gmail.com")
                    smtp.Port = 587
                    smtp.EnableSsl = True
                    smtp.Credentials = New System.Net.NetworkCredential(credentials(0), credentials(1))
                    smtp.Send(emailmessage)
                    MsgBox("ref5")
                Catch ex As Exception
                    errors.Enqueue("Email details are incorrect")
                End Try
                mysqlconn.Close()
            End While
        Catch ex As MySqlException
            errors.Enqueue(ex.Message)
        Finally
            mysqlconn.Dispose()
        End Try

我不断收到错误消息“阅读器关闭时读取尝试无效”。 我会弹出所有参考消息框,以及输出查询结果的消息框。查询很好,所以我不知道发生了什么。在我关闭 mysqlconnection 之前,我无法看到关闭阅读器的任何地方。 如果我的解释很清楚,我很抱歉。

【问题讨论】:

  • 嗯,您正在循环中的End While 之前关闭您的连接。

标签: vb.net


【解决方案1】:

改变这个

While reader.Read()
    ...
    mysqlconn.Close()
End While

到这里

While reader.Read()
    ...
End While
mysqlconn.Close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2013-07-09
    • 1970-01-01
    • 2012-09-23
    • 2018-05-17
    • 2021-04-13
    相关资源
    最近更新 更多