【问题标题】:How to load data from an SQLite Database query into a textbox?如何将 SQLite 数据库查询中的数据加载到文本框中?
【发布时间】:2018-03-18 22:38:37
【问题描述】:

所以我正在为一个项目制作一个轮班系统,我需要一个文本框来输出用户当前在组合框中选择的员工的合同工时。问题是,我不知道该怎么做;

    Sub GetContractedHours()

    Dim sSql As String
    Dim newds As New DataSet
    Dim newdt As New DataTable

    sSql = "SELECT emp_contractedhours FROM Employee WHERE emp_fn ='" & cboEmpName.Text & "%'"

    Dim con As New SQLiteConnection(ConnectionString)
    Dim cmd As New SQLiteCommand(sSql, con)
    con.Open()
    Dim da As New SQLiteDataAdapter(cmd)
    da.Fill(newds, "Employee")
    newdt = newds.Tables(0)

    txtUserAlertHours.DataSource = newdt
    con.Close()

End Sub

请帮忙! :)

【问题讨论】:

    标签: sql vb.net sqlite combobox textbox


    【解决方案1】:

    您不需要任何代码。只需首先获取所有数据,然后绑定您的ComboBox 和您的TextBox,例如

    Dim table As New DataTable
    Dim conection As New SQLiteConnection(ConnectionString)
    Dim adapter As New SQLiteDataAdapter("SELECT emp_fn, emp_contractedhours FROM Employee", connection)
    
    adapter.Fill(table)
    
    cboEmpName.DisplayMember = "emp_fn"
    cboEmpName.DataSource = table
    
    txtUserAlertHours.DataBindings.Add("Text", table, "emp_contractedhours")
    

    当您在ComboBox 中进行选择时,TextBox 将自动填充。这就是数据绑定的工作原理。

    如果您确实想每次都查询数据库,那么您根本不应该使用数据适配器。您只检索一个值,而这正是 ExecuteScalar 的用途。使用适当的 SQL 创建命令,调用 ExecuteScalar 并将结果分配给 TextBox 的 Text。

    如果您确实想对您拥有的代码使用数据绑定(这将是愚蠢的),那么您可以像我上面演示的那样进行绑定。请注意,如果您要每次使用不同的DataTable,您需要先删除旧的绑定。假设您没有绑定任何其他属性,您可以通过在 DataBindings 集合上调用 Clear 来最轻松地做到这一点。

    【讨论】:

    • 非常感谢!这正是我所需要的,非常感谢
    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 2017-03-21
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多