Chat mit MySQL-DB

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von nitram0598.

    Was nun? Naja....Aufhören!
    Das dämlichste was man machen kann ist ein Chat per FTP oder MySQL.
    Denn in beiden Fällen wird der Betreiber des FTP Server bzw. der MySQL Datenbank ganz einfach übernommen.
    Mach entweder einen Chat per TCP Server (Multiserver TCP von kevin89) oder bau dir ein PHP Skript zusammen (oft genug hier im Forum)
    Du musst in deiner DatenBank Tabellen einbauen.
    - User
    - Nachrichten

    Nun kannst du in der Tabelle Nachrichten deine Nachricht eintragen. Zusätzlich den User der gesendet hat und den User für den die Nachricht ist.

    Eine Tabelle zur Ansicht für den aktuellen User.
    Hier fragst du dann ab, welche Nachrichten für den aktuellen User sind. Mittelst Filter in der DataSet bzw BindingSource.

    Dann bekommt der Empfänger nur noch seine Nachrichten angezeigt.
    Stell dem User noch Button zur Verfügung.
    - Alle Nachrichten.
    - Gelesen Nachrichten
    .....
    - Nachrichten löschen
    ....

    So in etwa.

    Ob es sinn macht ? musst du für dich entscheiden.

    Ich habe es in meiner DatenBank eingebaut.
    Somit kann jeder User mir direkt Fehler melden.
    Kleiner Nebeneffekt, man kann das Ding dann auch per Chat nutzen.
    Was nun? Nun musst du das was in einer Textbox geschrieben wurde und nach drücken eines Buttons an die Datenbank senden und parallel dazu alle paar Sekunden prüfen ob neue Einträge in der DB vorhanden sind, wenn ja, die neuen Einträge aus der DB holen und bei dir irgendwo anzeigen. Ganz logisches System oder?
    Auslesen (alle paar secunden) kannst du mit einem Timer

    Deswegen NUR neue Datensätze auslesen. Z.B. versiehst du die Datenbanktabelle mit einer ID diese wird automatisch hoch gezählt. Wenn die Daten abholst, wird die letzte ID gespeichert, beim nächsten Query übergibst du die ID und lässt nur Datensätze ausgeben die größer sind als die übergebene ID.
    danke für deine hilfe, geht auch, aber ich habe den timer eingestellt, dass er jede millisekunde die nachrichte anzeigt, hier mein code:

    VB.NET-Quellcode

    1. Private Sub tim_chat_Tick(sender As System.Object, e As System.EventArgs) Handles tim_chat.Tick
    2. get_id()
    3. If get_id() < get_id() + 1 Then
    4. lesen()
    5. End If
    6. End Sub
    7. Function get_id() As Integer
    8. Dim con As New MySqlConnection
    9. Dim cmd As New MySqlCommand
    10. Dim reader As MySqlDataReader
    11. con.ConnectionString =
    12. "host=;" _
    13. & "uid=;" _
    14. & "pwd=;" _
    15. & "database=;"
    16. cmd.Connection = con
    17. cmd.CommandText = "SELECT `ID` from Chat"
    18. Try
    19. con.Open()
    20. reader = cmd.ExecuteReader()
    21. Do While reader.Read()
    22. l = reader("ID")
    23. Loop
    24. reader.Close()
    25. con.Close()
    26. Catch ex As Exception
    27. MsgBox(ex.Message)
    28. End Try
    29. Return l
    30. End Function
    31. Sub lesen()
    32. Dim con As New MySqlConnection
    33. Dim cmd As New MySqlCommand
    34. Dim reader As MySqlDataReader
    35. con.ConnectionString =
    36. "host=;" _
    37. & "uid=;" _
    38. & "pwd=;" _
    39. & "database=;"
    40. cmd.Connection = con
    41. cmd.CommandText = "SELECT `Name`, `Nachricht` from Chat"
    42. Try
    43. con.Open()
    44. reader = cmd.ExecuteReader()
    45. Do While reader.Read()
    46. rtb_chat.Text += reader("Name") & ": " & reader("Nachricht") & vbCrLf
    47. Loop
    48. reader.Close()
    49. con.Close()
    50. Catch ex As Exception
    51. MsgBox(ex.Message)
    52. End Try
    53. End Sub
    öhm nein? Das ist nicht meine Aufgabe, du willst ja Programmieren lernen. Du hast ja alles was du brauchst. Das Umschreiben dürfte ja nun die kleinste Arbeit sein. Immerhin hast den Code ja verstanden und weißt was wo in welcher Zeile passiert.