2015-03-14 3 views
0

Я подключаю базу данных Access к своей программе с помощью VB, и у меня есть две комбо, я хочу, чтобы второй источник комбинированных данных зависел от первого выбранного элемента combo, вот код что я сделал до сих пор:заполните данные в поле со списком в зависимости от другого значения поля со списком

Try 
    Dim dbcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\inventorysys.accdb;Persist Security Info=False;") 
     dbcon.Open() 
     Dim sqlquery As String = ("SELECT DISTINCT Brand FROM inventory WHERE Category = ' " & catogerycombotxt.SelectedItem & " ' ") 
     Dim comm As New OleDb.OleDbCommand(sqlquery, dbcon) 
     Dim rs As OleDb.OleDbDataReader = comm.ExecuteReader 
     Dim dt As DataTable = New DataTable 
     dt.Load(rs) 
     ' as an example set the ValueMember and DisplayMember' 
     ' to two columns of the returned table' 
     brandcombotxt.DataSource = dt 
     brandcombotxt.ValueMember = "Brand" 
     brandcombotxt.DisplayMember = "Brand" 

     dbcon.Close() 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 

работает без ошибок, но не получите никаких результатов, надеюсь, что вы можете помочь мне в том, что

ответ

0

две вещи:

-первых, я считаю, ваша проблема в том, что в вашем запрос, вы объединяете выбранное значение между двумя пробелами:

Dim sqlquery As String = ("SELECT DISTINCT Brand FROM inventory WHERE Category = ' " & catogerycombotxt.SelectedItem & " ' ") 

Должно быть

Dim sqlquery As String = ("SELECT DISTINCT Brand FROM inventory WHERE Category = '" & catogerycombotxt.SelectedItem & "'") 

Во-вторых: узнать о parameterized queries. Это лучший способ создать и выполнить SQL-запросы, чем конкатенацию строк по многим причинам.

+0

Я исправляю запрос, но код все еще не работает, можете ли вы просто показать мне, как t параметризовал мой запрос –

Смежные вопросы