Ich habe gerade diesen Fehler in meiner Funktion. Der Fall ist, dass ich eine SMS an jeden der Kunden senden muss, deren Zeitplan in der gegenwärtigen Zeit abgelaufen ist, also habe ich eine SQL-Abfrage, um den Eintrag mit laufendem Zeitplan auszuwählen und für jeden Eintrag den SQL Data Reader (READER) gelesen zu haben , Es wird meinen SMS-Code ausführen. Aber ich bekomme diesen Fehler.Ungültiger Leseversuch, wenn Reader geschlossen ist (VB.Net)
Hier ist mein Code:
Public Function onschedule()
MysqlConn.ConnectionString = ServerString
Dim READER As MySqlDataReader
Dim mobileNum, customername, datestart, msg As String
Try
MysqlConn.Open()
Dim query As String
query = "SELECT DATE_FORMAT(ratedemand_datestart, '%M %d, %Y') as 'Date Start',ratedemand_contact as 'Contact Number',sales_customername as 'Customer Name' FROM bnb.ratedemand WHERE ratedemand_status = 'Reserved' AND NOW() = ratedemand_datestart AND rate_category='Billiard'"
COMMAND = New MySqlCommand(query, MysqlConn)
READER = COMMAND.ExecuteReader
While READER.Read
mobileNum = READER.GetString("Contact Number") '09856994598'
datestart = READER.GetString("Date Start") 'November 2, 2017 12:00 AM'
customername = READER.GetString("Customer Name") 'Bruce R. Wayne'
'SMS Code Starts Here'
If SerialPort.IsOpen Then
SerialPort.Close()
End If
msg = customername + ", this is an automated text from Sta. Lucia East Grand Mall Billiard Hall confirming your 'Billiard Schedule' on " + datestart + " (Right Now). We are reminding you that if you are 20 minutes behind your schedule. It will be automatically cancelled."
SerialPort.PortName = "COM4"
SerialPort.BaudRate = 9600
SerialPort.Parity = Parity.None
SerialPort.StopBits = StopBits.One
SerialPort.DataBits = 8
SerialPort.Handshake = Handshake.RequestToSend
SerialPort.DtrEnable = True
SerialPort.RtsEnable = True
SerialPort.NewLine = vbCrLf
SerialPort.Open()
If SerialPort.IsOpen() Then
SerialPort.Write("AT" & vbCrLf)
SerialPort.Write("AT+CMGF=1" & vbCrLf)
SerialPort.Write("AT+CMGS=" & Chr(34) & mobileNum & Chr(34) & vbCrLf)
SerialPort.Write("Message: " & msg & Chr(26))
Else
MetroMessageBox.Show(Admin_Menu, "Port not Available", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End While
MysqlConn.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
MysqlConn.Dispose()
End Try
Return True
End Function
Darf ich fragen, warum mein Fehler ein Reader beheben nicht schließen, die Reader lesen ungültig erklärt, wenn ist geschlossen? Ich bekomme nicht so viele Leser –
Ich habe keine Ahnung. Hab nur in Dokumenten nachgesehen. – michelek