【问题标题】:VB.NET issue loading textboxes with data from SQL ServerVB.NET 使用 SQL Server 中的数据加载文本框时出现问题
【发布时间】:2013-08-22 17:05:10
【问题描述】:

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

【问题讨论】:

  • asp.net 还是 windows 窗体?
  • 您不会检索 TaxIDNumber 和 AccountManager 的字段数据。这只是一个打字错误还是你真的只是“从...中选择公司”
  • 这是一个打字错误,抱歉。它是窗体。

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


【解决方案1】:

我个人喜欢使用数据表,我发现它们更易于使用。我敢肯定,在实际尝试处理数据之前,您将需要检查更多代码以确保 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 字段可能会导致运行时错误,因此您可能还需要检查这些错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多