2017-12-10 15 views
1

現在、このエラーが発生しています。このケースでは、現時点でスケジュールが下がっている顧客のそれぞれにSMSを送信する必要があるため、進行中のスケジュールでエントリを選択するSQLクエリがあり、各エントリについてSQL Data Reader(READER)が読み込んでいます、それは私の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

Readerが閉じない理由私は求めることができたときにリーダーの読み取りが無効言うた私のエラーを修正閉じています?私は多くの読者を得ることはありません –

+0

私はヒントを持っていません。ちょうどドキュメントを見上げた。 – michelek

関連する問題