INSERT INTO 语句中的语法错误
Syntax error in INSERT INTO statement
我想向 Access 插入新值 table 我正在使用此代码
Public cmd As New OleDbCommand
Public CMDB As New OleDbCommandBuilder
Dim da As OleDb.OleDbDataAdapter
Dim con As New OleDb.OleDbConnection
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|learn_english.mdb"
con.Open()
cmd = New OleDbCommand("insert into quiz (question, option1, option2, option3, option4, answer, level) values(@question, @op1, @op2, @op3, @op4, @answer ,@level)", con)
cmd.Parameters.AddWithValue("@question", TextBox1.Text)
cmd.Parameters.AddWithValue("@op1", TextBox2.Text)
cmd.Parameters.AddWithValue("@op2", TextBox3.Text)
cmd.Parameters.AddWithValue("@op3", TextBox4.Text)
cmd.Parameters.AddWithValue("@op4", TextBox5.Text)
cmd.Parameters.AddWithValue("@answer", TextBox6.Text)
cmd.Parameters.AddWithValue("@level",DropDownList1.SelectedValue)
cmd.ExecuteNonQuery()
con.Close()
End Sub
但我收到错误 "Syntax error in INSERT INTO statement"
OleDbCommand 不支持命名参数。您必须将 @PARAM
替换为 ?
。 (请参阅 MSDN 中的 OleDbCommand.Parameters。)
The OLE DB .NET Provider does not support named parameters for passing
parameters to an SQL statement or a stored procedure called by an
OleDbCommand when CommandType is set to Text. In this case, the
question mark (?) placeholder must be used.
cmd = New OleDbCommand("insert into quiz (question, option1, option2, option3, option4, answer, [level]) values(?, ?, ?, ?, ?, ? ,?)", con)
cmd.Parameters.Add(TextBox1.Text)
cmd.Parameters.Add(TextBox2.Text)
cmd.Parameters.Add(TextBox3.Text)
cmd.Parameters.Add(TextBox4.Text)
cmd.Parameters.Add(TextBox5.Text)
cmd.Parameters.Add(TextBox6.Text)
cmd.Parameters.Add(DropDownList1.SelectedValue)
我认为这段代码应该可以解决问题![=15=]
我想向 Access 插入新值 table 我正在使用此代码
Public cmd As New OleDbCommand
Public CMDB As New OleDbCommandBuilder
Dim da As OleDb.OleDbDataAdapter
Dim con As New OleDb.OleDbConnection
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|learn_english.mdb"
con.Open()
cmd = New OleDbCommand("insert into quiz (question, option1, option2, option3, option4, answer, level) values(@question, @op1, @op2, @op3, @op4, @answer ,@level)", con)
cmd.Parameters.AddWithValue("@question", TextBox1.Text)
cmd.Parameters.AddWithValue("@op1", TextBox2.Text)
cmd.Parameters.AddWithValue("@op2", TextBox3.Text)
cmd.Parameters.AddWithValue("@op3", TextBox4.Text)
cmd.Parameters.AddWithValue("@op4", TextBox5.Text)
cmd.Parameters.AddWithValue("@answer", TextBox6.Text)
cmd.Parameters.AddWithValue("@level",DropDownList1.SelectedValue)
cmd.ExecuteNonQuery()
con.Close()
End Sub
但我收到错误 "Syntax error in INSERT INTO statement"
OleDbCommand 不支持命名参数。您必须将 @PARAM
替换为 ?
。 (请参阅 MSDN 中的 OleDbCommand.Parameters。)
The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case, the question mark (?) placeholder must be used.
cmd = New OleDbCommand("insert into quiz (question, option1, option2, option3, option4, answer, [level]) values(?, ?, ?, ?, ?, ? ,?)", con)
cmd.Parameters.Add(TextBox1.Text)
cmd.Parameters.Add(TextBox2.Text)
cmd.Parameters.Add(TextBox3.Text)
cmd.Parameters.Add(TextBox4.Text)
cmd.Parameters.Add(TextBox5.Text)
cmd.Parameters.Add(TextBox6.Text)
cmd.Parameters.Add(DropDownList1.SelectedValue)
我认为这段代码应该可以解决问题![=15=]