呃:使用MC Access 2016,oleDb 4.0的INSERT INTO语句Visual Basic 2017中的语法错误

时间:2018-03-11 08:06:56

标签: vb.net oledb

我正在尝试在我的访问数据库中插入数据,但我收到Syntax error in INSERT statemnt例外。有人请帮我解决此错误...也许我的插图声明不正确?

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    Try
        If cmbTo.Text = "" Or cmbfrom.Text = "" Or cmbDay.Text = "" Or cmbMonth.Text = "" Or cmbYear.Text = "" Or cmbListBus.Text = "" Then
            MsgBox("Please Insert Your Destination")
        Else
            Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Hacke\source\repos\Student\Database\studentdatabase.mdb")
            Dim insert As String = "INSERT INTO [BUSTICKET] VALUE ('" & cmbfrom.Text & "','" & cmbTo.Text & "','" & cmbDay.Text & "','" & cmbMonth.Text & "','" & cmbYear.Text & "','" & cmbListBus.Text & "');"


            Dim cmd As New OleDbCommand(insert, conn)
            conn.Open()
            cmd.ExecuteNonQuery()
            MsgBox("Success")
            conn.Close()


        End If
    Catch ex As Exception
        MsgBox("Err : " & Err.Description)
    End Try
End Sub

结束班

1 个答案:

答案 0 :(得分:0)

您帖子中的一些错误让我们有点难以理解。无论如何,我已经提交了您的帖子的编辑。

我到目前为止看到的问题是你还没有定义要插入数据的表。例如,如果你的表名是Students,那么样本sql / OleDb语句可能会看起来像

"Seletct * from Students",ConnectionString

注意:在下面的语句中,我使用了(*),这意味着我没有选择/定位任何特定的列/单元格,而是所有的列/单元格。此语句专门用于各种目的从数据库中检索数据时。

但是,您的动机是在数据库中插入数据。

任何数据库软件(AFAIK)的INSERT语句必须包含您要定位的Table名称,Column/Cell标题/名称。请假设您的{{1}名称为Table,您希望在StudentsFirstName列中插入数据。然后示例LastNmae语句可能如下所示:

Insert

现在,注意我没有直接在语句中添加值。如果需要,你可以这样做。但是,在这个示例插入语句中,我宁愿定义一些参数名称,如{ {1}}和"Insert into Students(FirstName,LastName)values(@fname,@lname)", ConnectionString 。稍后将用于最终将数据插入表格列。

现在,如果您使用我的示例代码,您必须从应用程序为这些参数指定一些值。我们现在有2个参数,它们是@Fname@Lname。我们现在需要添加对它们的字面值。让我们假设这些值来自@Fname es。

@Lname

在完成将文本框(或某些字符串或其他内容)作为值分配之后,是时候执行命令以便插入数据了。为此,我们通常会调用:

TextBox

所以,这是一个完整的样本:

MyOledbCommand.Add("@Fname",OledbDatatype.VarChar).Value = FNameTxtBox.Text

'Or you can use :

MyOledbCommand.AddWithValue("@Fname",FNameTxtBox.Text)

希望这会有所帮助:)