【发布时间】:2013-05-24 01:38:30
【问题描述】:
我正在尝试编写一个可以将数据写入 Access DB 的程序,但我不断收到错误消息“INSERT INTO 语句中的语法错误”。
FirstLast是表名; First 和 Last 是其中的列。
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