Vb.net 输入日期并保存到access时INSERT INTO语句中出现语法错误为什么?

Vb.net 输入日期并保存到access时INSERT INTO语句中出现语法错误为什么?,vb.net,ms-access,oledb,Vb.net,Ms Access,Oledb,我有以下代码: Public Sub insert_item(ByVal mydate As Date) Dim cmd As New OleDbCommand("insert into shop1 (date) values (@mydate)", con) cmd.Parameters.Add("@mydate'", OleDbType.Date).Value = mydate 当它运行时,我得到以下错误: !![这是我的问题][1] 如何修复它?OleDB实际上不做命名参

我有以下代码:

Public Sub insert_item(ByVal mydate As Date)
    Dim cmd As New OleDbCommand("insert into shop1 (date) values (@mydate)", con)
    cmd.Parameters.Add("@mydate'", OleDbType.Date).Value = mydate
当它运行时,我得到以下错误:

!![这是我的问题][1]


如何修复它?

OleDB实际上不做命名参数。你用什么?字符作为SQL字符串中的占位符。您还应该为每个查询创建一个新的连接对象,并且只在尽可能短的时间内保持它的打开状态;通常,这是通过Using关键字完成的:


尝试将查询更改为:插入shop1[date]值。。。日期是保留的,参数名称也不重要。日期是关键字。把它放在[括号]里。
Public Sub insert_item(ByVal mydate As Date)
    Using con As New OleDbConnection("connection string here"), _
          cmd As New OleDbCommand("insert into shop1 (date) values (?)", con)

        cmd.Parameters.Add("@mydate'", OleDbType.Date).Value = mydate
        con.Open()
        cmd.ExecuteNonQuery()
    End Using
End Sub