代码之家  ›  专栏  ›  技术社区  ›  Ridge

如何将数据从SQLite数据库查询加载到文本框中?

  •  -1
  • Ridge  · 技术社区  · 6 年前

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

        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
    

    请帮忙!:)

    1 回复  |  直到 6 年前
        1
  •  0
  •   jmcilhinney    6 年前

    你不需要这些代码。首先获取所有数据,然后绑定 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")
    

    这个 文本框 当您在中进行选择时,将自动填充 组合框 . 这就是数据绑定的工作原理。

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

    如果您真的想对现有代码使用数据绑定(这太傻了),那么您可以像我上面演示的那样进行绑定。请注意,如果要使用不同的 DataTable 每次都需要先删除旧绑定。打电话最容易做到这一点 Clear DataBindings 集合,假设尚未绑定任何其他属性。