【问题标题】:VB.net - You have an error in your SQL syntax;VB.net - 您的 SQL 语法有错误;
【发布时间】:2018-08-06 04:09:45
【问题描述】:

我有问题,我想在我的数据库中输入数据,但我收到一条错误消息(您的 SQL 语法有错误;请查看与 ypur MariaDB 服务器版本对应的手册,以了解在 'unique 附近使用的正确语法, partno, box, pcs, modul, p_lane) VALUES (1, 'T103','16581-57020',3,1' at line 1)

但是在检查了我相应使用的语法之后

这是我的代码

 ElseIf ComboBox1.Text = "TAPPING PLAN TMC" Then
        Dim cmd As New MySqlCommand("insert into s_unpackingtmc(no, unique, partno, boxs, pcs, modul, p_lane) VALUES (@Column1, @Column2, @Column3, @Column4, @Column5, @Column6, @Column7)", conn)
        Try


            For i As Integer = 0 To (DataGridView1.Rows.Count - 2)

                no1 = DataGridView1.Rows(i).Cells(0).Value
                unique1 = DataGridView1.Rows(i).Cells(1).Value
                partno1 = DataGridView1.Rows(i).Cells(2).Value
                boxs1 = DataGridView1.Rows(i).Cells(3).Value
                pcs1 = DataGridView1.Rows(i).Cells(4).Value
                modul1 = DataGridView1.Rows(i).Cells(5).Value
                plane1 = DataGridView1.Rows(i).Cells(6).Value


                cmd.Parameters.AddWithValue("@Column1", no1)
                cmd.Parameters.AddWithValue("@Column2", unique1)
                cmd.Parameters.AddWithValue("@Column3", partno1)
                cmd.Parameters.AddWithValue("@Column4", boxs1)
                cmd.Parameters.AddWithValue("@Column5", pcs1)
                cmd.Parameters.AddWithValue("@Column6", modul1)
                cmd.Parameters.AddWithValue("@Column7", plane1)
                cmd.ExecuteNonQuery()
                cmd.Parameters.Clear()
            Next
            MsgBox("Data Berhasil Diupload", MsgBoxStyle.Information, "Information")
            Call tampildata3()

        Catch ex As Exception

            MsgBox(ex.Message, MsgBoxStyle.Information, "Information")
            cmd.Dispose()
            Call tampildata3()



        End Try

【问题讨论】:

  • 可能是因为unique 是保留字?我相信 MariaDB 中的标识符引用字符是一个反引号,所以我建议尝试 ... no, `unique`, partno, ... 看看你是否有运气。
  • @TylerRoper 好的,谢谢,问题已解决,我将变量 unique 替换为其他变量

标签: mysql vb.net visual-studio-2015


【解决方案1】:

根据 MariaDB 文档 keywordsconstraintsUNIQUE 是表唯一约束定义的保留关键字:

UNIQUE 关键字表示索引不会接受重复的 值,NULL 除外。如果您尝试插入,将引发错误 UNIQUE 索引中的重复值。

对于 UNIQUE 键、PRIMARY KEY 和 FOREIGN KEY,您可以指定名称 对于约束,使用 CONSTRAINT 关键字。这个名字将是 在错误消息中使用。

您可以根据每种模式使用反引号或双引号(分别为标准或 ANSI SQL 模式,请参阅related issue)或将其重命名为其他非关键字标识符:

标准模式

insert into s_unpackingtmc(no, `unique`, partno, boxs, pcs, modul, p_lane) VALUES (@Column1, @Column2, @Column3, @Column4, @Column5, @Column6, @Column7)

ANSI SQL 模式

insert into s_unpackingtmc(no, "unique", partno, boxs, pcs, modul, p_lane) VALUES (@Column1, @Column2, @Column3, @Column4, @Column5, @Column6, @Column7)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2016-10-30
    • 2014-04-21
    • 2014-06-08
    • 2016-01-24
    • 2020-03-10
    相关资源
    最近更新 更多