我收到错误消息,说我的语法不正确,但对我来说一切都很好。
在使用 datareader 的那一行,它说“And”这个词的语法不正确。
我尝试了许多更改以尝试使其工作无济于事。有什么帮助吗?
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)
函数错误:-
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
我已经尝试了所有调试途径,但没有运气。
看着Where debtor_cohort_id Like {0} + {2} And ...
它看起来你正在尝试连接client_id
和cohort4
。除非 client_id 或 cohort4 包含通配符,否则请使用 = 而不是 LIKE。
您可能需要在您喜欢的比较周围使用单引号 Where debtor_cohort_id Like '{0} + {2}' And ...
最简单的方法是打印您的 sqlline1 变量以准确显示它的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句