你没有指定lan的UpdateCommand属性吧,这样的话,使用lan.Update是不会有效果的

解决方案 »

  1.   

    也就是说,你写了用于执行更新的SQL语句"update tablename set fieldname=XXX where id=..."了吗?
      

  2.   

    当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。这样,您就可以通过在设计时指定命令语法并在可能时通过使用存储过程来尽量提高 ADO.NET 应用程序的性能。在调用 Update 之前,必须显式设
                                                             ~~~~~~~~~
    置这些命令。如果调用了 Update 但不存在用于特定更新的相应命令(例如,
    ~~~~~~~~~~
    不存在用于已删除行的 DeleteCommand),则将引发异常。ms-help://MS.NETFrameworkSDK.CHS/cpguidenf/html/cpconupdatingdatabasewithdataadapterdataset.htm
      

  3.   

    使用Adapter时连接是自动打开的
      

  4.   

    请starky(爱在西元前) 帮下我写出来好不好,我看不明白
      

  5.   

    OleDbDataAdapter lan=new OleDbDataAdapter ((string)Session["sg"],this.oleDbConnection1  );lan.UpdateCommand = new OleDbCommand("UPDATE ... " , this.oleDbConnection1 );DataSet ds=new DataSet();
    lan.Fill(ds,"sjk");
    DataTable dt=ds.Tables["sjk"];
    dt.Rows[0][0]=this.jh.Text.ToString();
    lan.Update(ds,"sjk");