您的位置:程序门 -> .net技术 -> c#



datatable的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


datatable的问题[已结贴,结贴人:ratooner]
发表于:2007-02-09 11:04:46 楼主
定义两个datatable对象,数据结构一样,我想把这两个table所有行合并到新表中,该怎么做呢(生成的datatable是在内存里面,而不是从数据提取的)
发表于:2007-02-09 11:07:001楼 得分:0
datatable.meger方法就是了.
发表于:2007-02-09 11:07:592楼 得分:20
示例如下:

下面的控制台应用程序创建一个简单的   datatable   并将数据添加到该表中。该示例随后创建该表的一个副本,并向该副本添加行。最后,该示例调用   merge   方法将第二个表中的数据与第一个表中的数据合并。


private   static   void   demonstratemergetable()
{
        datatable   table1   =   new   datatable( "items ");

        //   add   columns
        datacolumn   column1   =   new   datacolumn( "id ",   typeof(system.int32));
        datacolumn   column2   =   new   datacolumn( "item ",   typeof(system.int32));
        table1.columns.add(column1);
        table1.columns.add(column2);

        //   set   the   primary   key   column.
        table1.primarykey   =   new   datacolumn[]   {   column1   };

        //   add   rowchanged   event   handler   for   the   table.
        table1.rowchanged   +=  
                new   system.data.datarowchangeeventhandler(row_changed);

        //   add   some   rows.
        datarow   row;
        for   (int   i   =   0;   i   <=   3;   i++)
        {
                row   =   table1.newrow();
                row[ "id "]   =   i;
                row[ "item "]   =   i;
                table1.rows.add(row);
        }

        //   accept   changes.
        table1.acceptchanges();
        printvalues(table1,   "original   values ");

        //   create   a   second   datatable   identical   to   the   first.
        datatable   table2   =   table1.clone();

        //   add   three   rows.   note   that   the   id   column   can 't   be   the  
        //   same   as   existing   rows   in   the   original   table.
        row   =   table2.newrow();
        row[ "id "]   =   14;
        row[ "item "]   =   774;
        table2.rows.add(row);

        row   =   table2.newrow();
        row[ "id "]   =   12;
        row[ "item "]   =   555;
        table2.rows.add(row);

        row   =   table2.newrow();
        row[ "id "]   =   13;
        row[ "item "]   =   665;
        table2.rows.add(row);

        //   merge   table2   into   the   table1.
        console.writeline( "merging ");
        table1.merge(table2);
        printvalues(table1,   "merged   with   table1 ");

}

private   static   void   row_changed(object   sender,  
        datarowchangeeventargs   e)
{
        console.writeline( "row   changed   {0}\t{1} ",  
                e.action,   e.row.itemarray[0]);
}

private   static   void   printvalues(datatable   table,   string   label)
{
        //   display   the   values   in   the   supplied   datatable:
        console.writeline(label);
        foreach   (datarow   row   in   table.rows)
        {
                foreach   (datacolumn   col   in   table.columns)
                {
                        console.write( "\t   "   +   row[col].tostring());
                }
                console.writeline();
        }
}

发表于:2007-02-09 11:08:263楼 得分:0
1楼的如果不行的话,手工合并,没有搞不定的
发表于:2007-02-21 14:55:384楼 得分:0
dataset.merge   方法     [c#]
将指定的   dataset、datatable   或   datarow   对象的数组合并到当前的   dataset   或   datatable   中。
重载列表

将   datarow   对象数组合并到当前的   dataset   中。
[c#]   public   void   merge(datarow[]);

将指定的   dataset   及其架构合并到当前   dataset   中。
  public   void   merge(dataset);

将指定的   datatable   及其架构合并到当前   dataset   中。
[c#]   public   void   merge(datatable);

将指定的   dataset   及其架构合并到当前   dataset   中,在此过程中,将根据给定的参数保留或放弃在此   dataset   中进行的任何更改。
[c#]   public   void   merge(dataset,   bool);

将   datarow   对象数组合并到当前的   dataset   中,在此过程中,将根据给定的参数保留或放弃在   dataset   中进行的更改并处理不兼容的架构。
[c#]   public   void   merge(datarow[],   bool,   missingschemaaction);

将指定的   dataset   及其架构与当前的   dataset   合并,在此过程中,将根据给定的参数保留或放弃在当前   dataset   中的更改并处理不兼容的架构。
[c#]   public   void   merge(dataset,   bool,   missingschemaaction);

将指定的   datatable   及其架构合并到当前的   dataset   中,在此过程中,将根据给定的参数保留或放弃在   dataset   中进行的更改并处理不兼容的架构。
[c#]   public   void   merge(datatable,   bool,   missingschemaaction);


快速检索

最新资讯
热门点击