我整个上午一直在为此而努力,我知道这可能是一件我想念的简单事情。代码在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()