日期:2014-05-17  浏览次数:20426 次

必须声明标量变量 "@id"。
//删除数据
  public int DelAdmin(int sId)
  {
  OleDbConnection myconn = new OleDbConnection(DB.conn);
  OleDbCommand mycmd = new OleDbCommand("delete from baoming where id =@id", myconn);
  mycmd.Parameters.Add("@id", sId);
  int nResult = -1;
  try
  {
  myconn.Open();
  nResult = mycmd.ExecuteNonQuery();
  }
  catch (OleDbException ex)
  {
  throw new Exception(ex.Message, ex);
  }
  finally
  {
  myconn.Close();
  }
  return nResult;
  }

sId肯定传过来值了,但是老报错




必须声明标量变量 "@id"。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.OleDb.OleDbException: 必须声明标量变量 "@@id"。

源错误: 





行 94: {
行 95: myconn.Open();
行 96: nResult = mycmd.ExecuteNonQuery();
行 97: }
行 98: catch (OleDbException ex) 


------解决方案--------------------
探讨

我先在用的是sqlserver2003数据库,我就是把以前的写Access的连接拿过来用,以前就不报错。是不是Iis配置问题或者web.config配置的问题。