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

System.Data.SqlClient.SqlException: ')'附近语法错误,求排查解决

问题分析与解决

错误原因

  • 直接拼接用户输入到SQL语句中,一旦输入包含单引号(比如书名是Pemrograman 'VB.NET'),会破坏SQL语句的语法结构,触发')'附近有语法错误
  • 未对数字类型字段(JmlhBuku,书籍数量)做类型校验,若输入非数字内容,也会引发语法错误
  • 未指定插入的列名,若表结构新增列或列顺序调整,会导致参数与列不匹配的问题

修复后的代码

采用参数化查询重构代码,同时优化输入校验逻辑:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ' 严谨校验输入是否为空或仅含空格
    If String.IsNullOrWhiteSpace(NamaBukuBox.Text) Or 
       String.IsNullOrWhiteSpace(PngrngBukuBox.Text) Or 
       String.IsNullOrWhiteSpace(PnrbtBukuBox.Text) Or 
       String.IsNullOrWhiteSpace(JmlhBukuBox.Text) Then
        MsgBox("Isi Semua Kolom Informasi")
        Return
    End If

    ' 校验书籍数量是否为有效整数
    Dim jmlhBuku As Integer
    If Not Integer.TryParse(JmlhBukuBox.Text, jmlhBuku) Then
        MsgBox("Jumlah Buku harus berupa angka")
        Return
    End If

    ' 使用参数化查询执行插入操作
    Using cmd As New SqlCommand("INSERT INTO BukuTbl (NamaBuku, PngrngBuku, PnrbtBuku, JmlhBuku) VALUES (@NamaBuku, @PngrngBuku, @PnrbtBuku, @JmlhBuku)", Con)
        Try
            Con.Open()
            ' 为参数赋值
            cmd.Parameters.AddWithValue("@NamaBuku", NamaBukuBox.Text)
            cmd.Parameters.AddWithValue("@PngrngBuku", PngrngBukuBox.Text)
            cmd.Parameters.AddWithValue("@PnrbtBuku", PnrbtBukuBox.Text)
            cmd.Parameters.AddWithValue("@JmlhBuku", jmlhBuku)
            
            cmd.ExecuteNonQuery()
            MsgBox("Buku Telah Ditambahkan")
        Catch ex As Exception
            MsgBox($"Terjadi kesalahan: {ex.Message}")
        Finally
            ' 确保连接关闭
            If Con.State = ConnectionState.Open Then
                Con.Close()
            End If
        End Try
    End Using
End Sub

关键改进点

  • 参数化查询:彻底避免字符串拼接导致的语法错误,同时杜绝SQL注入风险
  • 输入校验优化:用String.IsNullOrWhiteSpace更严谨地检查空输入,新增数字类型校验避免无效数据
  • Using语句:自动释放SqlCommand资源,防止资源泄漏
  • 指定插入列名:明确指定目标列,即使表结构变化,只要列名不变就不会出错
  • 异常捕获:捕获并展示具体错误信息,便于后续排查问题

内容的提问来源于stack exchange,提问作者Muhammad Rafif Rais

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:50:37