2013-12-13 4 views
0

У меня есть база данных с именем PriceTesting (с помощью Microsoft Access 2007), который содержит таблицу с именем tbl_dress с колоннами:Bind данных от Microsoft Acess к Textbox

Dress_ID, Dress_Name, Dress_Price 

В форме я создал выпадающий и текст коробка.

До сих пор мне удалось связывание выпадающего с Dress_Name данных с помощью этого кода: -

Private Sub FillCombo() 
     Try 
      Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb") 
      Dim query As String = ("SELECT Dress_Name FROM tbl_dress") 
      Dim da As New OleDb.OleDbDataAdapter(query, fillcon) 
      Dim ds As New DataSet 
      da.Fill(ds) 
      ComboBox1.ValueMember = "Dress_Name" 
      ComboBox1.DataSource = ds.Tables(0) 
      ComboBox1.SelectedIndex = 0 
     Catch ex As Exception 
      MsgBox("ERROR : " & ex.Message.ToString) 
     End Try 
    End Sub 

и это работает ... Каждый раз, когда форма загружается, выпадающий список содержит данные из Dress_Name колонки.

Теперь я хочу texbox.text = Dress_Price WHERE Dress_Name = combox.selecteditem

Любая идея, как сделать это? то, что я имею в виду только это: -

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged 

query = " SELECT Dress_Price FROM tbl_dress WHERE Dress_Name = ' " & Combobox1.Text & " ' " 
Textbox1.text = query 

End Sub 
+0

Кроме того, этот вопрос не имеет ничего общего с Visual Studio. –

ответ

0

TRY ЭТО и не забудьте добавить Dress_Price «в запросе

Private Sub FillCombo() 
    Try 
     Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb") 
     Dim query As String = ("SELECT Dress_Name, Dress_Price FROM tbl_dress") 
     Dim da As New OleDb.OleDbDataAdapter(query, fillcon) 
     Dim ds As New DataSet 
     da.Fill(ds) 
     ComboBox1.ValueMember = "Dress_Name" 
     ComboBox1.DataSource = ds.Tables(0) 
     ComboBox1.SelectedIndex = 0 

     texbox.DataBindings.Clear() 
     texbox.DataBindings.Add("Text", ds.Tables(0), "Dress_Price") 

    Catch ex As Exception 
     MsgBox("ERROR : " & ex.Message.ToString) 
    End Try 
End Sub 

или просто изменить код в вашей идее как этот и быть уверенным, чтобы добавить Dress_Price «в запросе

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged 
    dim dt as DataTable = Combobox1.DataSource 
    dim dr as DataRow = dt.Rows(Combobox1.SelectedIndex) 
    Textbox1.text = iif(dr.isNull("Dress_Price"), "", dr.isNull("Dress_Price").Tostring) 
End Sub 
+0

это работает .. thx много .. Я реализую это в своем фактическом проекте .. :) – WaN

0
Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb") 
Dim query As String = " SELECT Dress_Price FROM tbl_dress WHERE Dress_Name = ' " & Combobox1.Text & "'" 
Dim da As New OleDb.OleDbDataAdapter(query, fillcon) 
Dim dt As New DataTable 
da.Fill(dt) 
Textbox1.text = dt.rows(0).item(0) 

Поиск параметров, чтобы избежать SQL Injection. Кроме того, попробуйте улучшить запрос и использовать ID вместо dress_name

+0

это всего лишь тестовая форма, и если она будет работать, я буду реализовывать код в моем фактическом проекте ... мне нужно использовать имя Dress_Name для фактического проекта. «поиск параметров, чтобы избежать внедрения SQL». подробнее об этом ... ive попробовал код, который использует excutecalar, который ive найден из google .. но его не работает .. – WaN

+0

У меня есть eror: Нет строки в позиции 0. – WaN

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