ADODB vb.net组合框值到文本框工作在最后一个索引
问题描述:
我在这里有一个问题在vb.net我需要获取组合框值的值到文本框。但它只显示组合框的最后一个索引。/ADODB vb.net组合框值到文本框工作在最后一个索引
//这里是我的代码
Private Sub cboname_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboname.SelectedIndexChanged
strSql = "SELECT * FROM tblCashier WHERE ProductCode= '" & cboname.Text & "' "
Do Until myRecord.EOF
txtname.Text = myRecord.Fields("Product").Value
myRecord.MoveNext()
Loop
Call executeQuery2(strSql)
Call getRecord()
End Sub
// ADODB CONNECTIONS
Dim strSql As String
Dim myRecord As New ADODB.Recordset
// COMBO框中的值
Sub fillcombo()
strSql = "SELECT * FROM tblCashier"
Do While Not myRecord.EOF
cboname.Items.Add(myRecord.Fields("ProductCode").Value)
myRecord.MoveNext()
Loop
cboname.Refresh()
Call executeQuery(strSql)
Call getRecord()
End Sub
//的Form_Load
Private Sub myPOS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call openConnection()
Call getRecord()
Call fillcombo()
End Sub
答
这样的事情应该做这样的事:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Using adapter As New OleDbDataAdapter("SQL query here", "connection string here")
Dim table As New DataTable
adapter.Fill(table)
BindingSource1.DataSource = table
With ComboBox1
.DisplayMember = "ColumnNameToDisplay"
.ValueMember = "PrimaryKeyColumnName"
.DataSource = BindingSource1
End With
TextBox1.DataBindings.Add("Text", BindingSource1, "OtherColumnNameToDisplay")
End Using
End Sub
的TextBox
将自动作为ComboBox
变化选择更新。
你为什么首先使用ADODB?你为什么不使用ADO.NET?你应该做的是使用数据适配器填充一个DataTable,然后将它绑定到ComboBox和TextBox。随着用户选择项目,您不需要任何代码来填充“文本框”。 – jmcilhinney
至于具体的问题,考虑到你的'SelectedIndexChanged'事件处理程序中有一个循环,它专门移动到'Recordset'的末尾,为什么除了获取最后一个项目之外,你还期望什么? – jmcilhinney