下面的语句中ads中是数据已经改变,但是更新没有作用
SqlDataAdapter sqlAdp = new SqlDataAdapter( "SELECT * FROM T_storehouse" , sconn) ;
OleDbDataAdapter accessAdp = new OleDbDataAdapter( "SELECT * FROM T_storehouse" , aconn) ;OleDbCommandBuilder cb = new OleDbCommandBuilder(accessAdp);
DataSet ads = new DataSet ( ) ;
DataSet sds = new DataSet ( ) ;sqlAdp.Fill(sds,"T_storehouse");
accessAdp.Fill(ads,"T_storehouse");ads = sds;
accessAdp.Update(ads,"T_storehouse");

解决方案 »

  1.   

    加上一句试试,ads.AcceptChanged();
      

  2.   

    也没用,因为ads中的数据行状态没改变。
      

  3.   

    myDataSet1中数据是在哪里改变的?
    accessAdp.Update()时是根据行的状态进行更新的你看看ads有没有行的状态是修改的
      

  4.   

    你的DataAdapter里面的UpdateCommand语句写了吗
      

  5.   

    用System.Data.OleDb.OleDbCommand(UPDATE语句,连接名称)的ExecuteNonQuery()这个方法试试吧
      

  6.   

    up,adapter的update 似乎要求很高
      

  7.   

    用Update的方法,table肯定要设置主键的,而且SqlDataAdapter也要加上FillSchema或者是MissingSchemaAction.AddWithKey ,这样才能在DataSet中添加主键信息
      

  8.   

    ads = sds;  //???
    这样写太嚣张了吧!还是把记录一条一条add进去,再用Update ()