建立olecommandbuilder,
用oledbdataadapter填充了dataset,
用一个和dataset.tables[0]框架相同table,使用dataset.tables[0].emerge(table);
用oledbadapter.update(dataset,"table[0]的名字");
会成功把合并后的dataset.tables[0]写入数据库吗?

解决方案 »

  1.   

    要看你用于合并的DataTable的DataRow状态。如果是新增的,那么状态也会带过来。如果不是那么GetChanges()是不会取到的。
                DataTable data1 = new DataTable();
                data1.Columns.Add("name");
                data1.Columns.Add("code");            data1.Rows.Add(new object[] { "zhangsan", "123" });
                data1.Rows.Add(new object[] { "lisi", "456" });            data1.AcceptChanges();            DataTable data2 = data1.Clone();
                data2.Rows.Add(new object[] { "wangwu", "010" });
                
                //如果data2接受的Change,那么合并后的data1是取不到变化的数据的。
                data2.AcceptChanges();            data1.Merge(data2);            DataTable changedData = data1.GetChanges();            //结果是不会弹出消息框的
                if (changedData != null && changedData.Rows.Count > 0)
                    MessageBox.Show(changedData.Rows.Count.ToString());
      

  2.   

    合并出了点问题,可以update.
    具体是
    table1和table2相同的列
    table2有两行数据,其中一行数据A和table1有重复,
    合并table1里出现两行A.
    这是为什么?
      

  3.   

    用Table1.merge(table2)这样合并的