You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQLite数据库查询结果加载至文本框——排班系统开发需求

解决员工合同工时加载到TextBox的问题

嘿,我来帮你把这段代码补全并优化一下,搞定员工合同工时的加载和显示问题~

1. 完善GetContractedHours方法

首先要修正原代码里的SQL注入风险(直接拼接用户输入是很危险的操作),同时补全数据加载的逻辑,还加上异常处理保证程序稳定性:

Sub GetContractedHours()
    ' 初始化SQL语句,用参数占位符替代直接拼接
    Dim sSql As String = "SELECT emp_contractedhours FROM Employee WHERE emp_fn LIKE @EmpName"
    Dim contractedHours As String = String.Empty

    ' 使用Using语句自动释放数据库资源(推荐写法,避免连接泄漏)
    Using con As New SQLiteConnection(ConnectionString)
        Using cmd As New SQLiteCommand(sSql, con)
            ' 添加参数,彻底避免SQL注入
            cmd.Parameters.AddWithValue("@EmpName", cboEmpName.Text & "%")

            Try
                ' 打开数据库连接
                con.Open()
                
                ' 执行查询并获取单个结果(因为我们只查一个字段)
                Dim result As Object = cmd.ExecuteScalar()
                If result IsNot DBNull.Value Then
                    contractedHours = result.ToString()
                Else
                    contractedHours = "未找到对应工时" ' 没有匹配员工时的提示
                End If

            Catch ex As Exception
                ' 捕获异常并给出提示(可根据实际需求调整处理逻辑)
                MessageBox.Show("加载工时失败:" & ex.Message)
                contractedHours = "加载失败"
            Finally
                ' 确保连接关闭(Using语句会自动处理,这里显式写更稳妥)
                If con.State = ConnectionState.Open Then
                    con.Close()
                End If
            End Try
        End Using
    End Using

    ' 将结果显示到目标TextBox
    txtContractedHours.Text = contractedHours
End Sub

2. 绑定ComboBox的触发事件

你需要把这个方法和ComboBox的选中事件绑定,这样用户选中员工时会自动触发数据加载:

Private Sub cboEmpName_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboEmpName.SelectedIndexChanged
    ' 确保ComboBox有选中项时才执行
    If cboEmpName.SelectedIndex <> -1 Then
        GetContractedHours()
    End If
End Sub

额外小提示

  • 参数化查询的必要性:直接拼接用户输入会留下SQL注入漏洞,参数化查询能彻底规避这个安全问题。
  • Using语句的优势:自动释放数据库连接、命令等资源,不用手动调用Dispose,减少资源泄漏风险。
  • 空值处理:查询结果可能为DBNull,一定要先判断再赋值,避免程序报错。

内容的提问来源于stack exchange,提问作者Ridge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:38:08