VB.NET问题使用来自SQL Server的数据加载文本框

时间:2013-08-22 17:05:10

标签: sql-server vb.net visual-studio-2010 data-binding

我有一些文本框(使用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事件处理程序无济于事。设置数据绑定后也尝试使用刷新,没有帮助。欢迎任何建议,谢谢!

1 个答案:

答案 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字段可能会导致运行时错误,因此您可能还需要检查这些字段。