Anfängerproblem mit SqlDataReader

Wolfgang Peter

Grünschnabel
Hallo zusammen,
ich versuche, mir Visual Basic mit Visual Studio 2005 anzueignen. Ich habe mir eine Testtabelle im SqlServer 2005 angelegt. Nun will ich Daten mit sqlReader auslesen und anzeigen. Einzelne Werte mit Scalar funktionieren.
Code:
'Parametrisierte Abfrage der Testtabelle
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim con As SqlConnection = GetConnection()
Dim sql AsString = "select NID,Name,Passwort from dbo.tbl_01 where Gruppe = @Gruppe"
Dim cmd As SqlCommand = New SqlCommand(sql, con)
'Parameter deffinieren
cmd.Parameters.Add("@NID", SqlDbType.Int, 7)
cmd.Parameters.Add("@Name", SqlDbType.NChar, 20)
cmd.Parameters.Add("@Passwort", SqlDbType.NChar, 7)
cmd.Parameters.Add("@Gruppe", SqlDbType.NChar, 10)
'Parameter füllen
cmd.Parameters("@Gruppe").Value = "FA"
cmd.Parameters("@NID").Value = "NID"
cmd.Parameters("@Name").Value = "Name"
cmd.Parameters("@Passwort").Value = "Passwort"
'Komando ausführen
Dim sdr As SqlDataReader = cmd.ExecuteReader
'Datensätze anzeigen
'Do While (sdr.Read())
'Loop
sdr.Close()
con.Close()
 
 
EndSub

Was ist an meinem Code falsch, da ich folgende Fehlermeldung bekomme:
Programmzeile
Dim sdr As SqlDataReader = cmd.ExecuteReader wird gelbhinterlegt
Meldung: Konvertierung des Parameterwertes von String in Int32 fehlgeschlagen.

Außerdem, wie zeige ich die ausgelesenen Werte in 3 Textboxen an, nicht mit den vorgefertigten MS-Teilen sonder per Code.

Für Eure Hilfe sage ich jetzt schon mal Danke.

Gruß Peter
 
Hi

Du legst beim Erstellen der Parameter fest, dass @NID vom Typ Integer ist.
Code:
cmd.Parameters("@NID").Value = "NID"
hier übergibst du jedoch einen String.

Edit:
Was wahrscheinlich noch zu einem Fehler führen wird:
Dein Command hat nur einen Parameter, du fügst jedoch 4 hinzu.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück