MS Access 的 SQL INSERT INTO 语句
Posted
技术标签:
【中文标题】MS Access 的 SQL INSERT INTO 语句【英文标题】:SQL INSERT INTO statement for MS Access 【发布时间】:2013-03-07 16:27:59 【问题描述】:我正在尝试学习如何在我的 VB.net 程序中使用 MS Access。我正在练习学习如何使用 INSERT INTO 语句,但我不断收到错误消息。
这是我的代码:
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myConnection As OleDbConnection
Dim DBpath As String = "C:\Documents and Settings\nordeen1\Desktop\Test.mdb"
Dim sConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & DBpath & ";Persist Security Info=True"
myConnection = New OleDbConnection(sConnectionString)
myConnection.Open()
Dim SQLstr As String
SQLstr = "INSERT INTO Test (Text, [Date], Number) VALUES ('testing', #2/6/1990#, 5)"
Dim cmd As New OleDbCommand(SQLstr, myConnection)
cmd.ExecuteNonQuery()
End Sub
End Class
我收到此错误“OleDbException 未处理。INSERT INTO 语句中的语法错误。”在cmd.ExecuteNonQuery()
非常感谢任何建议!谢谢!
【问题讨论】:
【参考方案1】:TEXT
和 NUMBER
也是保留的,所以它们应该被分隔,
SQLstr = "INSERT INTO Test ([Text], [Date], [Number]) VALUES ('testing', #2/6/1990#, 5)"
MS ACCESS Reserved Keyword
【讨论】:
成功了!我会接受这个作为我的答案。是否可以通过 Values 部分中的变量? @nordeen1 是的,参数化了这些值。阅读一些关于OleDbCommand
.Parameters
太棒了!我去做。谢谢!【参考方案2】:
使用CDATE
作为您的日期:
"INSERT INTO Test ([Text], [Date], [Number])
VALUES ('testing', CDATE('1990-06-02 00:00:00'), 5)"
【讨论】:
以上是关于MS Access 的 SQL INSERT INTO 语句的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 的 SQL INSERT INTO 语句
MS Access 使用 SQL INSERT INTO - SELECT FROM 插入记录
强制 SET IDENTITY_INSERT 从 MS Access 更快生效
MS Access UPSERT(更新/插入)SQL [重复]