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

VB.NET展示本周数据库记录报错,请求代码修改

问题分析与修复方案

错误原因

  1. SQL语法错误:WHERE子句的AND之后错误使用了SELECT语句,导致数据库无法解析查询逻辑。
  2. 筛选逻辑错误:原语句未正确关联表内日期字段与当前周的判断条件。
  3. 存在SQL注入风险:直接拼接字符串生成SQL语句,易被恶意输入利用。

修正后的代码

Sub loadCheck()
    ' 修正SQL语句,用参数化查询避免注入,同时正确筛选本周记录
    Dim sql As String = "SELECT * FROM tblchecklist 
                         WHERE check_corporate = @Corporate 
                         AND YEARWEEK(check_date) = YEARWEEK(CURDATE())"
    da = New MySqlDataAdapter(sql, conn)
    ' 绑定参数,替代字符串拼接
    da.SelectCommand.Parameters.AddWithValue("@Corporate", mainfrm.lbl_server.Text)
    
    ds = New DataSet
    ds.Clear()
    da.Fill(ds, "tblchecklist")
    Me.DataGridView1.DataSource = ds.Tables("tblchecklist")
End Sub

关键说明

  • 请将代码中的check_date替换为你数据表中实际存储记录日期的字段名称。
  • YEARWEEK(CURDATE())会获取当前日期对应的年周值,通过匹配表内日期字段的年周值,实现筛选本周记录的需求。
  • 参数化查询彻底规避了SQL注入风险,同时让代码更易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:42:10