Ich bekomme Fehler, der sagt, dass meine Syntax falsch ist, aber alles sieht gut für mich aus.Fehler beim Versuch, sqlclient.sqldatareader zu verwenden?
In der Zeile, in der der Datenreader verwendet wird, steht, dass beim Wort "And" eine falsche Syntax vorliegt.
Ich habe zahlreiche Änderungen versucht, um es zu versuchen, ohne Erfolg. irgendeine Hilfe?
SQL: -
Dim sqlline1 As String = String.Format("Select count(debtor_id) As
numbernew, sum(debtor_original_debt) As valuenew, SUM(debtor_balance)
From debtors Where debtor_cohort_id Like {0} + {2} And (debtor_client_id >=
{0} And debtor_client_id <= {1})", clientid_start, clientid_end, Cohort4)
Funktion es Fehler auf: -
Public Function populatestringwithsql(command As String) As String
Dim conn As String = "a server connection"
Dim i = 1
Dim fields(15) As String
Dim numberoffields As Integer
Using connObj As New SqlClient.SqlConnection(conn)
Using cmdObj As New SqlClient.SqlCommand(command, connObj)
connObj.Open()
Dim readobj As SqlClient.SqlDataReader = cmdObj.ExecuteReader()
Dim schematable As DataTable = readobj.GetSchemaTable()
readobj.Close()
For Each dr As DataRow In schematable.Rows
numberoffields = schematable.Columns.Count
For Each dc As DataColumn In schematable.Columns
fields(i) = dc.ColumnName
i += 1
Next
Next
Using readerObj As SqlDataReader = cmdObj.ExecuteReader
'This will loop through all returned records
While readerObj.Read
If fields(1) <> "" Then
fields(1) = readerObj(fields(1)).ToString
End If
If fields(2) <> "" Then
fields(2) = readerObj(fields(2)).ToString
End If
If fields(3) <> "" Then
fields(3) = readerObj(fields(3)).ToString
End If
If fields(4) <> "" Then
fields(4) = readerObj(fields(4)).ToString
End If
If fields(5) <> "" Then
fields(5) = readerObj(fields(5)).ToString
End If
If fields(6) <> "" Then
fields(6) = readerObj(fields(6)).ToString
End If
If fields(7) <> "" Then
fields(7) = readerObj(fields(7)).ToString
End If
If fields(8) <> "" Then
fields(8) = readerObj(fields(8)).ToString
End If
If fields(9) <> "" Then
fields(9) = readerObj(fields(9)).ToString
End If
If fields(10) <> "" Then
fields(10) = readerObj(fields(10)).ToString
End If
If fields(11) <> "" Then
fields(11) = readerObj(fields(11)).ToString
End If
If fields(12) <> "" Then
fields(12) = readerObj(fields(12)).ToString
End If
If fields(13) <> "" Then
fields(13) = readerObj(fields(13)).ToString
End If
If fields(14) <> "" Then
fields(14) = readerObj(fields(14)).ToString
End If
If fields(15) <> "" Then
fields(15) = readerObj(fields(15)).ToString
End If
End While
End Using
connObj.Close()
End Using
End Using
Dim stringend As Text.StringBuilder
For Each field In fields
stringend.Append(field)
Next
Return stringend.ToString
End Function
Ich habe alle Möglichkeiten Debuggen versucht und hatte kein Glück.
Welche Version und welcher Geschmack von SQL? Ich glaube nicht, dass Sie geschweifte Klammern für Literale in den meisten SQL verwenden können. Daher erhalten Sie einen Fehler bei "und". –
Welche Werte setzen Sie in diese String.Format-Variablen? Ich vermute, es hat etwas mit fehlenden einfachen Anführungszeichen zu tun ... – soohoonigan
@Jacob H diese geschweiften Klammern sind für den Ersatz in Strings mit String.Format() – soohoonigan