【问题标题】:Syntax error in INSERT INTO Statement when writing to Access写入 Access 时 INSERT INTO 语句中的语法错误
【发布时间】:2013-05-24 01:38:30
【问题描述】:

我正在尝试编写一个可以将数据写入 Access DB 的程序,但我不断收到错误消息“INSERT INTO 语句中的语法错误”。

FirstLast是表名; FirstLast 是其中的列。

Imports System.Data.OleDb

Public Class Form1
    Dim theConnectionString As New OleDbConnection
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        theConnectionString.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Documents\Database1.accdb"

        Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO FirstLast (First, Last) VALUES (@First, TextBox1.text)", theConnectionString)

        cmd.Parameters.Add("@First", OleDbType.Char, 255).Value = TextBox1.Text
        cmd.Parameters.Add("@Last", OleDbType.Char, 255).Value = TextBox1.Text

        Try
            theConnectionString.Open()
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            Throw ex
        Finally
            theConnectionString.Close()
        End Try

    End Sub
End Class

【问题讨论】:

  • 您将参数命名为 @First@Last — 那么您不应该在查询中使用它们而不是 ? 吗?
  • @mwilson:不,应该为您的 参数 名称切换它们。这些不必与您的列名相同。
  • 我几乎不是 Access 专家,但实际问题不只是因为您的 SQL 中有VALUES (@First, TextBox1.text),它应该VALUES (@First, @Last)?如果是这样,我投票结束这个问题,因为“只是一个错字”。

标签: .net database vb.net ms-access oledb


【解决方案1】:

我怀疑你只需要使用命名参数而不是位置参数:

INSERT INTO FirstLast (First, Last) VALUES (@First, @Last)

请注意,您还应该对连接和命令使用Using 语句,以便您自己自动清理,而不需要显式的Finally 块。 (你可以摆脱整个Try/Catch/Finally,因为无论如何你只是重新抛出异常。)

正如下面评论中所述,您可能还打算将TextBox2.Text 用于@Last 参数,而不是再次使用TextBox1.Text

【讨论】:

  • @Last 的值也是错误的。您很可能想使用 TextBox2.Text
  • 我需要任何特殊的进口吗?我仍然无法让它工作......我还没有完全关注 Try Catch。我还在学习那部分。是这样吗?还是这会导致问题?
  • @mwilson:不,您不需要任何额外的导入。 “我仍然无法让它工作”太模糊了,我无法帮助你,恐怕......而且我要上飞机了。如果您不熟悉 Try/Catch 块,我建议您停止正在做的事情并了解它们。使用您不理解的语言功能的代码不是一个好主意。这意味着您几乎没有机会自己诊断问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多