我有一些文本框(使用VS2010)我试图根据某人从组合框中选择的项目填充SQL Server数据库中列的值。起初我能够显示组合框中第一个项目的值,但是现在我调试时根本没有显示任何内容。代码:
Private Sub loadfields(sender As System.Object, e As System.EventArgs) Handles client_selection_combobox.SelectedIndexChanged
Using myconnection As New SqlConnection("connection string")
Dim loadfields As String = "SELECT company FROM ClientFileDatabase WHERE ClientFileDatabase.File_Name=@company;"
Dim loadfields_sqlcommand As New SqlCommand(loadfields, myconnection)
loadfields_sqlcommand.Parameters.Add("@company", SqlDbType.NVarChar)
loadfields_sqlcommand.Parameters("@company").Value = client_selection_combobox.SelectedIndex.ToString
Dim loadfields_dataadapter As New SqlDataAdapter
loadfields_dataadapter.SelectCommand = loadfields_sqlcommand
Dim loadfields_dataset As DataSet = New DataSet()
loadfields_dataadapter.Fill(loadfields_dataset, "ClientFileDatabase")
Dim loadfields_dataview = New DataView(loadfields_dataset.Tables("ClientFileDatabase"))
companyname_textbox.DataBindings.Clear()
companyname_textbox.DataBindings.Add("Text", loadfields_dataview, "Company")
taxid_textbox.DataBindings.Clear()
taxid_textbox.DataBindings.Add("Text", loadfields_dataview, "TaxIDNumber")
accountmanager_textbox.DataBindings.Clear()
accountmanager_textbox.DataBindings.Add("Text", loadfields_dataview, "AccountManager")
etc...
End Using
End Sub
我也尝试过使用SelectedValueChanged和SelectionChangeCommitted事件处理程序无济于事。设置数据绑定后也尝试使用刷新,没有帮助。欢迎任何建议,谢谢!
答案 0 :(得分:0)
我个人喜欢使用数据表,我觉得它们更容易使用。我确定您需要检查更多代码以确保dt.rows.count>在实际尝试使用数据之前为0,但这是我将如何做到的。
Dim loadfields_dataadapter As New SqlDataAdapter
Dim dt As New DataTable
loadfields_dataadapter.Fill(dt)
companyname_textbox.text = dt.Rows(0).Item("Company")
taxid_textbox.text = dt.Rows(0).Item("TaxIDNumber")
accountmanager_textbox.text = dt.Rows(0).Item("AccountManager")
另外,请记住,数据库中的NULL字段可能会导致运行时错误,因此您可能还需要检查这些字段。