Синтаксическая ошибка в инструкции INSERT INTO при вводе даты и сохранении в доступе почему? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть этот код:

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]

Как можноЯ это исправлю?

1 Ответ

0 голосов
/ 12 февраля 2019

OleDB на самом деле не делает именованные параметры.Вы используете ? символы в качестве заполнителей в строке SQL.Вы также должны создать новый объект соединения для каждого запроса и держать его открытым только в течение минимально возможного времени;обычно это делается с помощью ключевого слова Using:

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
...