无效尝试在读取之前访问字段

时间:2016-01-27 18:33:17

标签: mysql vb.net visual-studio-2015

我整个上午一直在为此而努力,我知道这可能是一件我想念的简单事情。代码在dr.getstring(1).ToString行中出现错误"在调用Read()之前无效尝试访问字段。我知道SQL语句很好,它在工作台上运行良好,所以我认为它们必须与我的参数混淆,它只是没有错误。

Dim cs As New MySqlConnection("SERVER=10.1.1.1;Persist Security Info=True;DATABASE=db;UID=uid;Password=pw")
    Dim ds As String = cs.DataSource
    Dim cn As MySqlConnection = New MySqlConnection
    cn.ConnectionString = "user id=uid;password=pw!;database=db;data source=" + ds
    Dim sql As String = "SELECT a.email, b.details, b.requestor, b.id from department a, workrequest b WHERE a.name = b.department AND b.approval IS Null AND b.status != @stat"
    Dim cmd As New MySqlCommand(sql, cn)
    cmd.Parameters.Add("@stat", MySqlDbType.VarChar).Value = "Closed"
    cn.Open()
    Dim dr As MySqlDataReader
    dr = cmd.ExecuteReader

    Dim i As Integer = 0

    While dr.Read() Or i < 20
        'Dim email As String = dr.GetString(0).ToString
        Dim email As String = "test@dom.an"
        Dim details As String = dr.GetString(1).ToString
        Dim requestor As String = dr.GetString(2).ToString
        Dim workid As String = dr.GetString(3).ToString

        Try
            SendSMTP("test.dom.am", email, "Work Request Awaiting Approval", "<body><b>Work Request Number:</b> " & workid & "</br><b> Referring to: </b></br> " & details & "</br><b>Submitted By: </b> " & requestor & "</br> Is waiting for your approval.  Please go to http://test.dom.an to view and approve or deny the request</body>", "test.dom.an", "")

        Catch ex As Exception

        End Try

        i = i + 1
    End While
    Me.Close()

0 个答案:

没有答案