Hallo zusammen,
ich habe eine Frage zur Syntax wenn ich Parameter an eine SQL-Abfrage übergebe. Zum Erstellen des SqlCommands benutze ich folgende Funktion (danke an den Erfinder des Rades):
Die SQL-Abfrage erstelle ich so:
Das funktioniert. Aber ich will ja eben nicht den Parameter "4711" im SQL-String stehen haben. Für Access und eine OLE-DB-Connection funktioniert das dann so:
In txtKONTO.Text gebe ich also z.B. "4711" ein.
Das funktioniert aber nicht für SQL-Express (Fehlermeldung: "Falsche Syntax in der Nähe von ?"). Ich habe bereits folgendes ausprobiert:
Jetzt stehe ich auf dem Schlauch.
Jeder Tipp ist willkommen. Danke im voraus!
Gruß Schorsch
ich habe eine Frage zur Syntax wenn ich Parameter an eine SQL-Abfrage übergebe. Zum Erstellen des SqlCommands benutze ich folgende Funktion (danke an den Erfinder des Rades):
VB.NET-Quellcode
- Public Function CRECOMM(ByVal commandText As String, ByVal ParamArray values As Object()) As SqlCommand
- If commandText.Split("?"c).Count <> values.Length + 1 Then
- Throw New ArgumentException("Anzahl der Argumente passt nicht zur Anzahl der Parameter-Platzhalter im CommandText")
- Exit Function
- End If
- CRECOMM = New SqlCommand() With {.CommandText = commandText, .Connection = sqlFIL}
- For i = 0 To values.Length - 1
- CRECOMM.Parameters.AddWithValue("@a" & i, values(i))
- Next
- End Function
Die SQL-Abfrage erstelle ich so:
VB.NET-Quellcode
- Dim cm As New SqlCommand
- Dim da As New SqlDataAdapter
- Dim dt As New DataTable
- Dim dr As DataRow
- Dim strSQL As String = "SELECT KDKONTO, KDADRESSE FROM tblTesttabelle WHERE tblTesttabelle.KDKONTO = '4711'"
- cm = CRECOMM(strSQL)
- With da
- .SelectCommand = cm
- .Fill(dt)
- End With
- Dim strPcBUG as String = dt.Rows.Count.ToString
Das funktioniert. Aber ich will ja eben nicht den Parameter "4711" im SQL-String stehen haben. Für Access und eine OLE-DB-Connection funktioniert das dann so:
In txtKONTO.Text gebe ich also z.B. "4711" ein.
Das funktioniert aber nicht für SQL-Express (Fehlermeldung: "Falsche Syntax in der Nähe von ?"). Ich habe bereits folgendes ausprobiert:
Jetzt stehe ich auf dem Schlauch.
Jeder Tipp ist willkommen. Danke im voraus!
Gruß Schorsch