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

VB.NET结合MySQL如何实现仪表板按当前日期统计展示预约数量

你现有代码存在两个核心问题:

  1. 直接拼接日期参数到SQL语句,会因.NET日期格式和MySQL日期字段格式不匹配导致查询无结果,同时存在SQL注入风险
  2. 未做异常捕获和资源自动释放,查询过程一旦报错会导致数据库连接泄漏

优化后可直接运行的代码:

' Using语句会自动释放数据库资源,无需手动调用Close方法
Using cn As New MySqlConnection("替换为你的实际数据库连接字符串")
    cn.Open()
    ' 使用参数化查询,规避SQL注入和日期格式匹配问题
    Dim sql As String = "SELECT COUNT(*) FROM tblappointment WHERE `date` = @today"
    Using cm As New MySqlCommand(sql, cn)
        cm.Parameters.AddWithValue("@today", Date.Today)
        Dim appointmentCount As Long = CLng(cm.ExecuteScalar())
        frmDashBoard.lblAppointment.Text = appointmentCount.ToString("#,##0")
    End Using
End Using

注意事项:

  • MySQL中date是保留关键字,查询时用反引号包裹可避免语法报错
  • 参数化查询会自动处理日期类型转换,无需手动拼接日期字符串,不会出现格式兼容问题
  • 如果你表中的date字段存储了时分秒信息,可将查询条件改为DATE(date) = @today,确保匹配当天所有时段的预约记录
  • Using语句会在代码块执行结束后自动释放连接、命令对象的资源,即使执行过程中出现异常也不会出现连接占用的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:39:01