【问题标题】:SQL INSERT INTO statement for MS AccessMS Access 的 SQL INSERT INTO 语句
【发布时间】: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()

非常感谢任何建议!谢谢!

【问题讨论】:

    标签: sql vb.net ms-access sql-insert oledbexception


    【解决方案1】:

    TEXTNUMBER 也是保留的,所以它们应该被分隔,

    SQLstr = "INSERT INTO Test ([Text], [Date], [Number]) VALUES ('testing', #2/6/1990#, 5)"
    

    【讨论】:

    • 成功了!我会接受这个作为我的答案。是否可以通过 Values 部分中的变量?
    • @nordeen1 是的,参数化了这些值。阅读一些关于OleDbCommand.Parameters
    • 太棒了!我去做。谢谢!
    【解决方案2】:

    使用CDATE 作为您的日期:

       "INSERT INTO Test ([Text], [Date], [Number]) 
                  VALUES ('testing',  CDATE('1990-06-02 00:00:00'), 5)"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      相关资源
      最近更新 更多