Abfrage Problem

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick1993.

    Abfrage Problem

    Hallo Community,
    Nachdem ich mir ein Datenbank Tutorial (Hier) Ausgedruckt und "Nachgebaut" habe (In eigenem Projekt) ist mir ein Fehler gemeldet worden.

    Hier mein Code

    VB.NET-Quellcode

    1. Imports MySql
    2. Imports MySql.Data
    3. Imports MySql.Data.MySqlClient
    4. Public Class Form2
    5. Dim con As New MySqlConnection
    6. Dim cmd As New MySqlCommand
    7. Dim reader As MySqlDataReader
    8. Public Sub Server()
    9. con.ConnectionString = "Server=funkspiel-bos-funk.de;" & "UID=test;" & "Password=****;" & "Database=test;"
    10. cmd.Connection = con
    11. End Sub
    12. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    13. Try
    14. 'Verbindung Öffnen
    15. con.Open()
    16. 'Datenbank auslesen
    17. cmd.CommandText = "SELECT * FROM test"
    18. 'Reader ausführen
    19. reader = cmd.ExecuteReader
    20. 'Wenn reader Ausgeführt dann
    21. Do While reader.Read
    22. TextBox1.Text = reader("test")
    23. Loop
    24. 'Reader Beenden
    25. reader.Close()
    26. 'Verbindung Schliesen
    27. con.Close()
    28. Catch ex As Exception
    29. 'Verbindung schliesen
    30. con.Close()
    31. MsgBox(ex.Message)
    32. End Try
    33. End Sub
    34. End Class




    Als Fehler bekomme ich in einer Messagebox:
    Der Schlüßel darf nicht Null sein
    Parametername: key

    (Auf wunsch kann ich einen Screenshot anhängen)

    Würde mich über Hilfe freuen.

    MFG
    Patrick

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Patrick1993“ ()

    vorweg: warum verbirgst du deine Frage in einem Expander?


    War keine Absicht. Ich wollte die Unter den Expander packen.
    Ist mir rein gerutscht werde es ändern
    Der fehler wird mir bei:

    VB.NET-Quellcode

    1. con.Open()

    Angezeigt

    Edit by der_Kurt:
    keine Doppelposts, es gibt eine Bearbeiten-Funktion
    * Beiträge zusammengefügt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Ich hatte den ConnectionString oben in meinem Beitrag mit einem & zwischen jedem teil geschrieben also
    Server & ......

    @ ErfinderDesRades

    Das ist an sich die alternativ Connection-Syntax.

    Allerdings mMn mit einem Schreibfehler, hier mal die korrekte Syntax ohne Rechtschreibfehler (sollte zumindest so sein *g*):

    Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;

    Gruß

    Rainer
    Ich habe in meinem Syntax die "" weggemacht: Fehler der gleiche
    Ich habe sie wieder Hingemacht: Fehler der gleiche
    Dann habe ich die Syntax von raist eingebaut: Fehler der gleiche
    Kann der fehler vielleicht an

    VB.NET-Quellcode

    1. Public Sub Server()
    2. con.ConnectionString = "Server=funkspiel-bos-funk.de;" & "UID=test;" & "Password=****;" & "Database=test;"
    3. cmd.Connection = con
    4. End Sub

    Liegen ??
    Da die Daten in einer Eigenen Sub stehen und der rest halt in einer anderen

    nanu? ich dachte, du hättest die syntax von raist hingemacht - jetzt isses wieder die alte?
    weil bei raist gibts eine "user id", aber keine "uid", vlt. liegts dadran.

    ansonsten kanns natürlich auch daran liegen.
    Jdfs., falls wenn die Sub nie aufgerufen wird, was passiert dann nicht?
    anu? ich dachte, du hättest die syntax von raist hingemacht - jetzt isses wieder die alte?
    weil bei raist gibts eine "user id", aber keine "uid", vlt. liegts dadran.

    Daran liegt es nicht. Ich habe es geändert in dem Code in VB und da ging es auch nicht (mit rasists Syntax)

    VB.NET-Quellcode

    1. Jdfs., falls wenn die Sub nie aufgerufen wird, was passiert dann nicht?

    In der Sub sind wie man sieht die Daten zur Datenbank um sie nicht jedesmal neu aufzurufen.
    Dann in dem Button gehe ich hin und mache die Abfragen etc.

    Wenn ich nun auf den Button cklicke dann kommt die Fehlermeldung und mir wird in VB bei con.Open () werden mir die 2 () unterstrichen.

    Nach wunsch kann ich einen Screenshot mit liefern wenn dies das finden nach einer lösung vereinfacht

    Nicht das ich wüsste.
    Wenn ich in dem Button Code z.b. con eingebe dann kommt direct der DropDown mit con.

    In meinem Buch steht leider nicht wie man ihn aufruft somit die Frage "Wie"

    Die Sub.
    Wie du sagst muss ich die Sub aufrufen in der die Daten stehen.

    Nein das hat gereicht ich hab die Daten ins Form Load Event gepackt.

    Jetzt wird mir bei

    VB.NET-Quellcode

    1. reader = cmd.ExecuteReader

    komischerweise als Fehler
    InvalidExeptionOperation wurde nicht Behandelt und da drunter Connection must be Valid and Open

    gezeigt

    Patrick1993 schrieb:

    ... ich hab die Daten ins Form Load Event gepackt.

    Daraus schließe ich, du weißt wirklich nicht, wie man eine Sub aufruft.

    Und du sollst ein Sync-Tool für deine Arbeit schreiben?


    Und der Fehler kommt bei .ExecuteReader?

    eiglich sollte er doch bei con.Open kommen, wenn was mitte Connection nicht stimmt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Daraus schließe ich, du weißt wirklich nicht, wie man eine Sub aufruft.

    Da es in meinem Buch nicht steht schließt du richtig. Dachte es were so

    Und du sollst ein Sync-Tool für deine Arbeit schreiben?

    Indirekt. Ich habe ein Spiel (Link in Signatur) und dafür will ich eine art Mitgliederdatenbank schreiben wo wir Kontaktdaten von dem Mitgliedern eintragen und sie jeder der das Programm hat abrufen kann.

    Neben diesem Programm soll ich sowas ähnliches auch für meine Arbeit schreiben ja.

    Und der Fehler kommt bei .ExecuteReader?

    Ja er kommt bei .ExecuteReader

    eiglich sollte er doch bei con.Open kommen, wenn was mitte Connection nicht stimmt.

    Da wird mir kein Fehler gezeigt


    komischerweise als Fehler
    InvalidExeptionOperation wurde nicht Behandelt und da drunter Connection must be Valid and Open


    Du musst Du Verbindung mit con.Open() erst öffnen und danach erst dem Command-Object zu weisen. ;)

    Gruß

    Rainer
    Daraus schließe ich, du weißt wirklich nicht, wie man eine Sub aufruft.
    Da es in meinem Buch nicht steht schließt du richtig.


    Wie man eine Sub aufruft, am Beispiel der Sub Server():

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    2. Server()
    3. End Sub