日期:2014-05-19  浏览次数:20735 次

update的问题
String   sCode   =   "abc "
  String   strConn   =   //数据库地址
  OleDbConnection   Conn   =   new   OleDbConnection(strConn);
  Conn.Open();
  String   strSQL   =   "update   [Login]   set   passWord= ' "   +   chPwd.Text   +   " '   ,studCode= ' "   +   sCode   +   " '   where   studCode= ' "   +   sCode   +   " ' ";
  OleDbCommand   Cmd   =   new   OleDbCommand(strSQL,   Conn);
  Cmd.ExecuteNonQuery();
  Conn.Close();
——————————用上面的语句update出错——————————
用户代码未处理   System.Data.OleDb.OleDbException
    Message= "UPDATE   语句的语法错误。 "
    Source= "Microsoft   JET   Database   Engine "
    ErrorCode=-2147217900
    StackTrace:
              在   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS   dbParams,   Object&   executeResult)
              在   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&   executeResult)
              在   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior   behavior,   Object&   executeResult)
              在   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior   behavior,   String   method)
              在   System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
              在   Chax.Button1_Click(Object   sender,   EventArgs   e)   位置   c:\Documents   and   Settings\xhy\My   Documents\Visual   Studio   2005\WebSites\WebSite1\Chax.aspx.cs:行号   28
              在   System.Web.UI.WebControls.Button.OnClick(EventArgs   e)
              在   System.Web.UI.WebControls.Button.RaisePostBackEvent(String   eventArgument)
              在   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)
              在   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)
              在   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)
              在   System.Web.UI.Page.ProcessRequestMain(Boolean   includeStagesBeforeAsyncPoint,   Boolean   includeStagesAfterAsyncPoint)


------解决方案--------------------
SQL语句有错误。
断点,调试。追到SQL语句的时候OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
把strSQL语句追出来,用别的数据库软件,比如SQL Explor或SQLserver的查询分析器执行一下,看报什么错。像你这个一般应该是表名不存在或者字段类型的问题。
------解决方案--------------------
String strSQL = "update [Login] set [passWord]= ' " + chPwd.Text + " ' ,studCode= ' " + sCode + " ' where studCode= ' " + sCode + " ' ";

如果用的是ACCESS,password是关键字,要