Hallo zusammen,
ich möchte ein kleines Messaging System schreiben und habe festgestellt, dass wenn ich Spame, dass dann folgende Meldung erscheint "No current query in data reader". Und das Programm stürzt ab.
Kann ich das irgendwie unterbinden?
Senden:
Empfangen:
Das Empfangen, läuft über einen BG Worker, der von einem Timer in 2 Sek. Takt angestupst wird.
ich möchte ein kleines Messaging System schreiben und habe festgestellt, dass wenn ich Spame, dass dann folgende Meldung erscheint "No current query in data reader". Und das Programm stürzt ab.
Kann ich das irgendwie unterbinden?
Senden:
VB.NET-Quellcode
- Try
- conn.Close()
- conn.Open() ' Verbindung öffnen
- Catch myerror As MySqlException
- MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
- End Try
- myCommand.Connection = conn
- myCommand.CommandText = "INSERT INTO messages(message_id, user, line, time) VALUES('" & My.Settings.chat_id & "', '" & My.Settings.username_tmp & "', '" & chat_txt.Text & "', '" & Now.ToString("HH:mm:ss") & "')"
- myAdapter.SelectCommand = myCommand
- myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
- conn.Close()
- chat_txt.Text = ""
- Me.Chatbox.SelectionStart = Me.Chatbox.Text.Length - 1
- Me.Chatbox.ScrollToCaret()
Empfangen:
VB.NET-Quellcode
- Me.Invoke(Sub() Me.Chatbox.Clear())
- Try
- conn.Close()
- conn.Open() ' Verbindung öffnen
- Catch myerror As MySqlException
- MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
- End Try
- myCommand.Connection = conn
- myCommand.CommandText = "SELECT * FROM messages WHERE message_id='" & My.Settings.chat_id & "'"
- myAdapter.SelectCommand = myCommand
- myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
- While myData.Read
- If myData.HasRows Then
- Me.Invoke(Sub() Me.Chatbox.AppendText("[" & myData(4) & "] " & myData(2) & ": " & myData(3) & vbNewLine))
- End If
- End While
- conn.Close()
- Me.Invoke(Sub() Me.Chatbox.SelectionStart = Me.Chatbox.Text.Length - 1)
- Me.Invoke(Sub() Me.Chatbox.ScrollToCaret())
Das Empfangen, läuft über einen BG Worker, der von einem Timer in 2 Sek. Takt angestupst wird.