日期:2014-05-18  浏览次数:20431 次

SQL 语句使用参数时,造成错误
在学习使用SQL使用参数的时候,语句是对的,但是会抛出异常:insert语句错误
C# code

try
{
   string sql = @"insert into user(user_name,user_psw,group_id,ext_pri) values ('@name','@psw',@group,'@ext')";
   OleDbConnection odc = new OleDbConnection(con_str);
   odc.Open();
   OleDbCommand myAccessCommand = new OleDbCommand(sql, odc);

   OleDbParameter par = new OleDbParameter("@name", this.UserName.Text);
   myAccessCommand.Parameters.Add(par);
   par = new OleDbParameter("@psw", this.Password1.Text);
   myAccessCommand.Parameters.Add(par);
   par = new OleDbParameter("@group", this.WorkSelect.SelectedValue);
   myAccessCommand.Parameters.Add(par);
   par = new OleDbParameter("@ext", this.CheckBox1.Checked ? "100" : "0");
   myAccessCommand.Parameters.Add(par);

   myAccessCommand.ExecuteNonQuery();
   }
   catch (Exception error)
   {
      this.Label1.Text = "注册失败";
   }
   finally
   {
      if (odc.State == ConnectionState.Open)
         odc.Close();
   }



在access插入正确的语句
SQL code
insert into user(user_name,user_psw,group_id,ext_pri) values ('name','psw',55,'ext')





------解决方案--------------------
C# code
string sql = "insert into [user](user_name,user_psw,group_id,ext_pri) values (@name,@psw,@group,@ext)";

------解决方案--------------------
string sql = "insert into [user](user_name,user_psw,group_id,ext_pri) values (@name,@psw,@group,@ext)";

user 表名需要加标志