2017-12-10 13 views
1

현재 내 기능에서이 오류가 발생합니다. 이 경우 현재 일정이 끝나는 각 고객에게 SMS를 보내야하므로 진행 일정이있는 항목을 선택하는 SQL 쿼리와 SQL 데이터 판독기 (판독기)가 읽은 각 항목에 대해 , 그것은 내 SMS 코드를 실행합니다. 하지만이 오류가 발생합니다.Reader가 닫힌 상태에서 읽기 시도가 잘못되었습니다. (VB.Net)

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 

답변

0

망가 독자 :

Try 
    While Reader.Read() 
    ... 
    End While 
Finally 
    Reader.Close 
    MysqlConn.Close() 
End Try 
+0

내가 왜 리더가 때 리더를 읽을 잘못된 말한다 내 오류를 수정 닫는 않습니다 물어 봐도 폐쇄의 필요성을 과소 평가 : 여기

내 코드입니다 닫혀 있습니까? 나는 그다지 독자를 얻지 못한다 –

+0

나는 단서가 없다. 그냥 문서를 보았습니다. – michelek