我在DataSet中新建的一张表MyTable,当MyTable里只有个别的行的列的数改变时,怎样只把该过的数据放到数据库中的表(表名:aaa)。

解决方案 »

  1.   

    数据行有个RowState,它记录了当前行的状态。更新时....DataAdapter是按此属性来决定更新的,它会忽略所有状态为Unchanged状态的行,所以不会想你所认为的全部更新一遍。如要手动更新,可循环所有数据行,判断RowSatae<>DataRowSatae.Unchanged就更新
      

  2.   

    DataAdapter.Update()
    即可
      

  3.   

    DataSet ds = ((DataTable)dataGrid1.DataSource).DataSet.GetChanges(DataRowState.Modified);得到更新过的记录..再用DataAdapter.Update()更新
      

  4.   

    DataSet没有和数据库中的表(aaa)相关啊。只是DataSet中新建的一张表MyTablemyDataTable=myDataSet.Tables.Add("myTable");
    (它里面的内容是数据库中aaa内容) 
    怎么把myTable中改过后在保存到aaa中。
    在线等,请各位高手指点
      

  5.   

    我的DataAdapter是程序写的。SqlDataAdapter DtaAapter=new SqlDataAdapter();不是用SqlDataAdapter1直接生成的
      

  6.   

    myDataSet.Tables.Add("myTable");这样添加的myTable没有数据
    你还的向其中添加数据,然后ds.AcceptChanges();然后让在去修改myTable
    中的数据,修改完后在去保存,保存的方法很多,可以用DataAdapter.Update()
    方法,这样需要你去写他的sqlInsertCommand 
    sqlUpdateCommand
    sqlDeleteCommand 

    在他们的CommandText属性中指定表名为aaa
    this.sqlInsertCommand.CommandText = @"INSERT INTO aaa(...) VALUES (...)";