使用OLEDB从文本框插入

时间:2012-11-05 12:10:50

标签: c# insert oracle10g oledbcommand

我在尝试使用OLEDB Connection从C#表单插入值时收到错误。

strSQL = "INSERT INTO test_table (username,password) " +
"VALUES (@user,@pass)";

objCmd = new OleDbCommand(strSQL, objConnection);
objCmd.Parameters.Add("@user", OleDbType.VarChar, 255).Value =TextBox1.Text.Trim();

objCmd.Parameters.Add("@pass", OleDbType.VarChar, 255).Value= TextBox2.Text.Trim();

// execute the command
objCmd.ExecuteNonQuery();

objConnection.Close();
Label1.Text = "Command run";    

错误是

  

异常详细信息:System.Data.OleDb.OleDbException:一个或多个   在处理命令期间发生错误。 ORA-00936:失踪   表达

3 个答案:

答案 0 :(得分:2)

我相信你错过了VALUES朋友之间的空格。在下面的示例中,我在字段列表中的)之后添加了一个。

strSQL = "INSERT INTO test_table (username,password) " +
"VALUES (@user,@pass)";

答案 1 :(得分:1)

尝试设置如下参数: -

objConnection = new OleDbConnection(strConnection);
objConnection.ConnectionString = strConnection;

objConnection.Open();



// set the SQL string
strSQL = "INSERT INTO test_table (username,password) " +
"VALUES (@user,@pass)";
// Create the Command and set its properties
objCmd = new OleDbCommand(strSQL, objConnection);

objCmd.Parameters.AddWithValue("@user", TextBox1.Text);

objCmd.Parameters.AddWithValue("@pass", TextBox2.Text);

// execute the command
objCmd.ExecuteNonQuery();

objConnection.Close();

答案 2 :(得分:0)

试试这个:

strSQL =“INSERT INTO test_table(username,password)”+ “VALUES(?,?)”;

使用OleDb你需要把“?”而不是@param参数