Asp.net INSERT INTO语句中的语法错误
我想插入新值以访问我正在使用的表代码Asp.net INSERT INTO语句中的语法错误,asp.net,vb.net,ms-access,Asp.net,Vb.net,Ms Access,我想插入新值以访问我正在使用的表代码 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 B
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
但是我得到了错误“INSERT INTO语句中的语法错误”OleDbCommand不支持命名参数。您必须将
@PARAM
替换为?
。(请参见MSDN中的。)
OLE DB.NET提供程序不支持用于传递的命名参数
由调用的SQL语句或存储过程的参数
CommandType设置为Text时的OleDbCommand。在这种情况下
必须使用问号(?)占位符
我认为这段代码应该可以做到这一点 level是一个保留字,请按如下方式转义:
“…[level])值(…”
顶部的所有DB对象都应该一次性使用并处理,而不是为reusethx@Proputinix全局声明。为了指出这一点,我已经更新了我的answerDuplicate。实际上,您可以使用命名参数,但OleDB只将其视为位置占位符,因此您必须按相同的顺序添加或添加WithValue。这可能会导致错误I如果你按一个顺序定义它们,然后添加另一个。奇怪的是,很久没有使用OleDb。奇怪的是,MSDN为什么说这是不可能的?你有任何资源来支持@PUROTIX吗?只是因为我一直都这么做。我倾向于使用“@p1,@p2…”因此,我甚至不想将它们用作实际命名的参数。这些数字有助于明确您使用的变量。
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)