DataAdapter.Update()可以啊。不过你更新的那个表一定要有主键,不然就不能更新了!!!

解决方案 »

  1.   

    private System.Data.DataSet ccDS;
    private System.Data.OleDb.OleDbDataAdapter ccDA,ccDA2;
    /*更新*/
    this.ccDA.Update(this.ccDS,"cc_students");
    /*更新*/
    然后加个按牛控件

    this.ccDS.Clear();
    this.ccDA.Fill(this.ccDS,"terminal");//terminal为表名
      

  2.   

    ... 不是用数据库的数据来更新DataSet的数据,而是要用DataSet的数据去还原数据库的数据。像这样DataSet ds;
    DataAdapter da;da.fill(ds);
    ...
    //这里ds的内容没有被修改过。
    da.Update(ds); //??这里应该怎么写?才能把ds中的每条记录都更新到数据库?因为ds中的记录没有被修改过,所以默认情况下da.Update(ds)就什么也不做。
      

  3.   

    private SqlConnection Cnn;
    private SqlDataAdapter Adap;
    private DataSet NewDat=new DataSet();Cnn=new SqlConnection("database=123;server=BTK;Trusted_Connection=yes");
    Cnn.Open();
    Adap=new SqlDataAdapter("SELECT * FROM Categories",Cnn);
    SqlCommandBuilder SqlCB=new SqlCommandBuilder(Adap);
    Adap.Fill(NewDat,"Categories");
    NewDat.Tables["Categories"].Rows[0][1]="as";
    NewDat.Tables["Categories"].Rows[1][1]="asdqwu";
    NewDat.Tables["Categories"].Rows[2][1]="btk";
    Adap.Update(NewDat,"Categories")以上代码测试过,不过记住,Categories表中一定要有主键
      

  4.   

    你的代码里对NewDat进行了修改啊
    NewDat.Tables["Categories"].Rows[0][1]="as";
    NewDat.Tables["Categories"].Rows[1][1]="asdqwu";
    NewDat.Tables["Categories"].Rows[2][1]="btk";这三句之后Update,当然会把改动过的行更新到数据库
    我要的是,对NewDat什么修改的动作也不做,再把原来的数据导回到数据库中去。这个时候数据库里的数据可能已经发生了变化,再导回去之后,又变回了原来的值,就像做备份那样。
      

  5.   

    我今天也遇到这问题,当一条数据也没有变时,
    adapter不会自动生成UpdateCommand, 所以出错
    正在想办法中....
    办法之一:
    自已改行状态
    之二:
    自已来写UpdateCommand
      

  6.   

    想办法把每行的row state变更为add
    这样da会自动为你update,也就是insert到数据库。但是你能保证和数据库现有数据不冲突吗?
      

  7.   

    DataSet m_dsBds ;
    /// <summary>
    /// 更新数据库。
    /// </summary>
    private void UpdateDB()
    {
    if ( !m_dsBds.HasChanges() )
    {
    //增加错误提示!
    //modified by dengff 2004-4-26
    Msg.MyMessageBox(Msg.error);
    return;
    } try
    {
    this.Cursor = Cursors.WaitCursor; if (m_conn.State != ConnectionState.Open)
    {
    m_conn.Open();
    } using (SqlTransaction trans = m_conn.BeginTransaction())
    {
    try
    {
    m_daBds.SelectCommand.Transaction = trans;
    m_cbBds.RefreshSchema(); DataSet dsChange = m_dsBds.GetChanges();
    if (dsChange == null)
    {
    trans.Rollback();
    this.Cursor = Cursors.Default;
    return;
    } m_daBds.Update(dsChange, "bdxjt_xt_bds"); m_dsBds.AcceptChanges();
    trans.Commit();
    this.Cursor = Cursors.Default;
    }
    catch (Exception ex)
    {
    trans.Rollback();
    throw ex;
    }
    }
    }
    catch (Exception ex)
    {
    this.Cursor = Cursors.Default;
    throw ex;
    }
    }
      

  8.   

    NewDat.Tables["Categories"].Rows[0][1]=NewDat.Tables["Categories"].Rows[0][1];
    NewDat.Tables["Categories"].Rows[1][1]=NewDat.Tables["Categories"].Rows[1][1];
    NewDat.Tables["Categories"].Rows[2][1]=NewDat.Tables["Categories"].Rows[2][1];实际使用时,用循环做