mysql - mysql vb.net 出现错误

标签 mysql vb.net

这是我的代码,我已经遇到了 2 个小时的问题

Dim Query As String


 con.Open()
Query = "INSERT INTO  `" & finalTableName & "` VALUES" & _
        "(" & _
        " '" & varDateTime & "'," & _
        " '" & varComputer & "'," & _
        " '" & vard & "'," & _
        " '" & varll & "' ," & _
        " '" & varPp & "'," & _
        " '" & varVv & "' ," & _
        " '" & varIi & "' ," & _
        " '" & varIc & "'," & _
        " '" & varPc & "'," & _
        " '" & varSs & "'," & _
        " '" & varRd & "'," & _
        " '" & varIpd & "'," & _
        " '" & varMg & "'," & _
        " '', " & _
        "  '" & varRuleId & "', " & _
        " '" & varDateUploaded & "' " & _
        ")"

Dim cmd As MySqlCommand = New MySqlCommand(Query, con)

If (cmd.ExecuteNonQuery()) Then


End If

con.Close()

这就是我遇到的问题

You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'dd', 'Deleted',
'344', '',   '4',  '2014-03-05 15:29:37' )' at line 1

最佳答案

使用命令参数

Dim Query As String

Query = "INSERT INTO `" & finalTableName & _
    "` VALUES(@1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, '', @14, @15)"

Dim cmd As MySqlCommand = New MySqlCommand(Query, con)

cmd.AddWithValue("@1", varDateTime);
cmd.AddWithValue("@2", varComputer);
cmd.AddWithValue("@3", vard);
cmd.AddWithValue("@4", varll);
cmd.AddWithValue("@5", varPp);
cmd.AddWithValue("@6", varVv);
cmd.AddWithValue("@7", varIi);
cmd.AddWithValue("@8", varIc);
cmd.AddWithValue("@9", varPc);
cmd.AddWithValue("@10", varSs);
cmd.AddWithValue("@11", varRd);
cmd.AddWithValue("@12", varIpd);
cmd.AddWithValue("@13", varMg);
cmd.AddWithValue("@14", varRuleId);
cmd.AddWithValue("@15", varDateUploaded);

con.Open()
If cmd.ExecuteNonQuery() = 1 Then


End If
con.Close()

参数将根据列类型自动添加正确的方式(文本为文本,数字为数字,日期为日期)。

我还建议添加列名称部分。这使得命令更加安全。如果您稍后添加或删除列并且更改了列顺序,它仍然可以工作,或者至少会抛出异常,并且不会默默地将值插入到错误的列中。

INSERT INTO table (col1, col2, col3) VALUES (val1, val2, val3)

关于mysql - mysql vb.net 出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208836/

相关文章:

mysql join 选择两个表之间的最小(日期)和最大(日期)

mysql - 使用来自 GTFS 数据的传单绘制路线

vb.net - gem 游戏步骤计算,换句话说一些数学

mysql - 用于连接 has_and_belongs_to_many 关系的 ActiveRecord 查询

mysql BLOB问题

mysql - SQL 查询左连接问题

ASP.NET 数据绑定(bind)下拉列表还允许手动输入吗?

vb.net - 视觉基础等于或大于

asp.net - 未提供的参数化查询

asp.net - 在 asp.net 应用程序中管理与数据库的连接