我正在尝试在从SQL Server 2008 r2数据库填充的DataGridView的2列上设置自动完成。我已经测试过该代码的先前版本,直到将NULL值传递到数据库中。该查询工作正常
“SELECT DISTINCT”&专栏& “来自dbo.Purchases”
我在“SQL Server Management Studio”中测试了我的新查询并获得了我期望的结果,与之前相同,减去了Null,但是当我将新查询放入代码时,我得到了一个例外。
System.Data.SqlClient.SqlException(0x80131904):关键字“NULL”附近的语法不正确。
Private Function fillACList(Column As String) As AutoCompleteStringCollection
Dim temp As AutoCompleteStringCollection
temp = New AutoCompleteStringCollection
Using acConn As SqlConnection = New SqlConnection("Data Source=xxx.xxx.xxx.xxx,xxxx;Trusted_Connection=Yes;database=Purchasing_DB")
Try
acConn.Open()
Catch ex As Exception
MessageBox.Show(ex.ToString() & " FillACList")
End Try
Using cbCommand As SqlCommand = New SqlCommand("SELECT DISTINCT " & Column & " FROM dbo.Purchases WHERE " & Column & " IS NOT NULL", acConn)
Dim reader As SqlDataReader = cbCommand.ExecuteReader()
While reader.Read()
If reader.HasRows Then
Try
Dim input As String
input = reader.GetString(0)
temp.Add(input)
Catch ex As Exception
MessageBox.Show(ex.ToString() & " CheckDB")
End Try
End If
End While
If (acConn.State = ConnectionState.Open) Then
acConn.Close()
End If
End Using
End Using
Return temp
End Function
连接字符串为安全起见进行了编辑。
答案 0 :(得分:0)
您应该检查SqlCommand
中的实际查询是什么,并在那里找到问题。
答案 1 :(得分:0)
您是否验证过去的参数列是什么?因为你正在使用"&" vb.net可能不会显示错误。使用" +"相反,因为"&"做了很多转换。