insert into 语句中的语法错误 - 在 VB.NET 中

问题描述 投票:0回答:3

我正在尝试使用以下代码将记录插入 MS Access 数据库。我在我的项目中多次使用过相同类型的代码。但不知道为什么会报错,说有语法错误。请有人告诉我代码哪里错误。

Try
                If MainForm.con.State = ConnectionState.Closed Then
                    MainForm.con.Open()
                End If
                Dim cmdText As String
                cmdText = "insert into tblBottling(bottlingDate,workerName,seed,size,noOfBottles,timeTaken,remarks) values(?,?,?,?,?,?,?)"
                Dim command As OleDbCommand = New OleDbCommand(cmdText, MainForm.con)

                command.Parameters.AddWithValue("@bottlingDate", botDate.Value.ToString("dd-MM-yy"))
                command.Parameters.AddWithValue("@workerName", workerCB.SelectedItem.ToString)
                command.Parameters.AddWithValue("@seed", seedCB.SelectedItem.ToString)
                command.Parameters.AddWithValue("@size", botSizeCB.SelectedItem.ToString)
                command.Parameters.AddWithValue("@noOfBottles", CInt(noOfBot.Text))
                command.Parameters.AddWithValue("@timeTaken", timeTakenTxt.Text)
                command.Parameters.AddWithValue("@remarks", remarksTxt.Text)

                command.ExecuteNonQuery()
                MainForm.con.Close()

            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
vb.net oledbcommand
3个回答
2
投票

Size 是 MS-Access 的保留关键字。如果您想使用该单词作为列名称,那么您应该始终将其括在方括号中

cmdText = "insert into tblBottling
          (bottlingDate,workerName,seed,[size],noOfBottles,timeTaken,remarks) 
          values(?,?,?,?,?,?,?)"

0
投票
`cmdText = "insert into tblBottling([bottlingDate],[workerName],[seed],[size],[noOfBottles],[timeTaken],[remarks]) values(?,?,?,?,?,?,?)"

请始终在您的列中使用方括号,以防出现此类错误。

因为你无法记住所有的关键词。

祝你好运


0
投票

创建表时尝试更改列名称,避免像我一样使用用户名等关键字😅

© www.soinside.com 2019 - 2024. All rights reserved.