redbullmachtfit
Goto Top

Abfrage aus SQL Datenbank in Textbox schlägt fehl VB.NET

Hallo!
Ich versuche Daten aus einer MySQL Datenbank in eine Textbox zu schreiben.
Leider komme ich nicht weiter, da immer der Fehler

Ungültige Konvertierung von der Zeichenfolge SELECT * FROM benutzer WHERE Nam in Typ Integer.

auftritt.

Mein Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "server=localhost;" & "user id=root;" & "password=test;" & "database=testdatenbank"  

        Dim name As String = (txt_Name.Text)
        Dim nachname As String = (txt_Nachname.Text)

        Dim myAdapter As New MySqlDataAdapter
        Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Name='" + Replace(name, " ", "") + "' AND Nachname='" & Replace(nachname, " ", "") & "'"  
        Dim myCommand As New MySqlCommand
        myCommand.Connection = conn
        myCommand.CommandText = SQLAbfrage

'---Hier tritt der Fehler auf:  
        txt_Name.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Name")  
        txt_Nachname.Text = SQLAbfrage("SELECT * FROM benutzer WHERE Nachname")  
'----  
        myAdapter.SelectCommand = myCommand
        Dim myData As MySqlDataReader
        myData = myCommand.ExecuteReader()
        If myData.HasRows Then
            conn.Close()
            conn.Open()

        Else
            
        End If
    End Sub

Könnt ihr mir helfen?
Gruß

Content-ID: 155352

Url: https://administrator.de/contentid/155352

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

MrTrebron
MrTrebron 18.11.2010 um 20:44:24 Uhr
Goto Top
Hi

wie lautet denn die Fehlermeldung?

Wie wäre es auch mit einem etwas genauerem SQL Statement.

("SELECT * FROM benutzer WHERE Name") gibt dir mehr als einen Wert wieder, ein ganzen ResultSet und das kannst du so nicht einer Textbox zuweisen.

Gruß
Norbert
Biber
Biber 18.11.2010 um 21:27:40 Uhr
Goto Top
Moin ScArAbAeuS,

ich versteh auch nicht ganz die Erwartungsgegenüber dem Codeschnipsel - ich an dessen Stelle würde auch vergleichbar antworten.

Oder anders ausgedrückt ... die Zeilen 1-14 sind ja irgendwie sauber sortiert und strahlen eine Form von gesund erscheinendem langsamen Vorbereiten einer geplanten Aktion aus. Ein langsames Steigern des Spannungsbogens, Schritt für Schritt wird da etwas langsam aufgebaut...

Bis zur Zeile 14.... also der Zeile, die dann gefolgt wird von dem Kommentar "' --- Hier tritt der Fehler auf"

In diesen zweiten Hälfte des Schnipsels sehen die Zeilen 22-bis- Ende, die ich mal bewust ohne Codeformatierung zitiere:

If myData.HasRows Then
conn.Close()
conn.Open()

Else


End If
End Sub

diese Zeilen sehen so aus, als hätte grad Mutti in der Tür gestanden und gerufen "Entweder du kommst JETZT SOFORT zum Abendessen oder nie wieder in diesem Haus!".

Und die beiden einzigen noch nicht erwähnten Zeilen 16 & 17 ergeben so viel Sinn wie ein Wirtschaftsprogramm der FDP.

Was SOLL denn in denen passieren? Oder vielmehr.... was wäre dort eine treffendere Reaktion als die Meldung
Ungültige Konvertierung von der Zeichenfolge SELECT * FROM benutzer WHERE Nam in Typ Integer.
Wie du in den Wald hineinrufst etc. Ich sach nur: Gut gekontert von diesem Redmond-Zeugs. face-wink

Da - also zu dem Zeitpunkt- ist doch noch keine Abfrage abgefeuert?
Und WhereTFandAgainstWhomTF ist die Function "SQLAbfrage()"???
Und in welchem Kontext wird die abgearbeitet?
Und hätte man dort nicht auch einen unbeteiligten Passanten fragen können?

Grüße
Biber
RedBullmachtfit
RedBullmachtfit 19.11.2010 um 00:36:51 Uhr
Goto Top
Hallo,
ja, OK, habe mir das ganze aus dem Netz zusammengesucht und gebastelt, weil ich nichts richtig passendes für mich gefunden habe.
Ich habe das ganze gelöst, indem ich die Daten im Datagrid ausgebe und per Mausklick auf den richtigen Datensatz die Textboxen befülle.

Private Sub dgvDaten_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvDaten.CellContentClick
        txtBez001.Text = dgvDaten.Item(1, e.RowIndex).Value.ToString
End Sub

Klappt nun einwandfrei - hätte mal früher in der Suchfunktion stöbern sollen.
Danke.

Gruß