Я пытаюсь настроить auto complete на 2 столбца DataGridView, заполненных из базы данных sql Server 2008 r2. Я протестировал предыдущую версию этого кода до тех пор, пока в базу данных не будет передано значение NULL. запрос работал отлично, какпроверенный sql-запрос не работает в vb.net
"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
Строка подключения отредактированное в целях безопасности.
У какой строки возникает эта ошибка? может быть, ваша колонка сама передается как null –
С другой стороны, этот код недействителен. Вы должны управлять этим либо хранимой процедурой, либо параметризованной операцией sql. Встроенная инструкция sql не препятствует внедрению sql. – Gajendra