合并datatable

1,相同table 横向合并

public DataTable CombineTheSameDatatable(DataTable dt1, DataTable dt2)
      {

          if (dt1.Rows.Count == 0 && dt2.Rows.Count == 0)
          {

              return new DataTable();

          }

          if (dt1.Rows.Count == 0)
          {

              return dt2;

          }

          if (dt2.Rows.Count == 0)
          {

              return dt1;

          }

          for (int i = 0; i < dt2.Rows.Count; i++)
          {
              for (int j = 0; j < dt2.Columns.Count;j++ )

                  dt1.Rows.Add(new object[] { dt2.Rows[i][j] });
             
          }
          return dt1;

      }

 

2。相同table横向合并

 

/// <summary>

  /// 合并两个相同的DataTable,返回合并后的结果

  /// </summary>

  /// <param name="dt1"></param>

  /// <param name="dt2"></param>

  /// <returns></returns>

  public DataTable CombineTheSameDatatable(DataTable dt1, DataTable dt2)

  {

  if (dt1.Rows.Count == 0 && dt2.Rows.Count == 0)

  {

  return new DataTable();

  }

  if (dt1.Rows.Count == 0)

  {

  return dt2;

  }

  if (dt2.Rows.Count == 0)

  {

  return dt1;

  }

  DataSet ds = new DataSet();

  ds.Tables.Add(dt1.Copy());

  ds.Merge(dt2.Copy());

  return ds.Tables[0];

  }

3。将多个不同结构的table合并到一个table中去

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebApplication3
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int m = 0;
            int n = 0;
            DataTable table1 = MakeNamesTable1("table1");
            DataTable table2 = MakeNamesTable2("table2");
            DataTable table3 = MakeNamesTable3("table3");
            DataTable table = MakeNamesTable("table");

            m = table1.Rows.Count;
            n = table1.Columns.Count;
            DataRow dr;
            DataColumn dc;
            for (int i = 0; i < m; i++)
            {
                dr = table.NewRow();
                table.Rows.Add (dr );

                for (int j = 0; j < n; j++)
                {
                    table.Rows[i][j]= table1.Rows[i][j];
                }

            }
            for (int i = 0; i < table2.Rows.Count; i++)
            {
                if (i >= table.Rows.Count)
                {
                    dr = table.NewRow();
                    table.Rows.Add(dr);
                }
                for (int j = n; j < n + table2.Columns.Count; j++)
                {

                    table.Rows[i][j] = table2.Rows[i][j - n];
                }
            }
            for (int i = table1.Rows.Count; i < table1.Rows.Count + table3.Rows.Count; i++)
            {
                if (i >= table.Rows.Count)
                {
                    dr = table.NewRow();
                    table.Rows.Add(dr);
                }
                for (int j = 0; j < table3.Columns.Count; j++)
                {
                    table.Rows[i][j] = table1.Rows[i - table3.Rows.Count][j];
                }

            }

                UltraWebGrid1.DataSource =table;
            UltraWebGrid1.DataBind();

        }
       
        private DataTable MakeNamesTable1(string s)
        {
            // Create a new DataTable titled 'Names.'
            DataTable namesTable = new DataTable(s);

            // Add three column objects to the table.
            DataColumn idColumn = new DataColumn();
            idColumn.DataType = System.Type.GetType("System.Int32");
            idColumn.ColumnName = "id";
            idColumn.AutoIncrement = true;
            namesTable.Columns.Add(idColumn);

            DataColumn fNameColumn = new DataColumn();
            fNameColumn.DataType = System.Type.GetType("System.String");
            fNameColumn.ColumnName = "Fname";
            fNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(fNameColumn);

            DataColumn lNameColumn = new DataColumn();
            lNameColumn.DataType = System.Type.GetType("System.String");
            lNameColumn.ColumnName = "LName";
            lNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(lNameColumn);


            // Create an array for DataColumn objects.
            DataColumn[] keys = new DataColumn[1];
            keys[0] = idColumn;
            namesTable.PrimaryKey = keys;
            object[] row1 = { null, "zhang", "hui" };
            object[] row2 = { null, "zhang1", "hui1" };
            object[] row3 = { null, "zhang2", "hui2" };
            object[] row4 = { null, "zhang3", "hui3" };
            namesTable.Rows.Add(row1);
            namesTable.Rows.Add(row2);
            namesTable.Rows.Add(row3);
            namesTable.Rows.Add(row4);
            // Return the new DataTable.
            return namesTable;
        }
        private DataTable MakeNamesTable2(string s)
        {
            // Create a new DataTable titled 'Names.'
            DataTable namesTable = new DataTable(s);

            // Add three column objects to the table.
            DataColumn idColumn = new DataColumn();
            idColumn.DataType = System.Type.GetType("System.Int32");
            idColumn.ColumnName = "id";
            idColumn.AutoIncrement = true;
            namesTable.Columns.Add(idColumn);

            DataColumn fNameColumn = new DataColumn();
            fNameColumn.DataType = System.Type.GetType("System.String");
            fNameColumn.ColumnName = "Fname";
            fNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(fNameColumn);

            DataColumn lNameColumn = new DataColumn();
            lNameColumn.DataType = System.Type.GetType("System.String");
            lNameColumn.ColumnName = "LName";
            lNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(lNameColumn);
            DataColumn lAgeColumn = new DataColumn();
            lAgeColumn.DataType =System.Type.GetType ("System.Int32");
            lAgeColumn .ColumnName="Lage";
            namesTable.Columns.Add (lAgeColumn );
            // Create an array for DataColumn objects.
            DataColumn[] keys = new DataColumn[1];
            keys[0] = idColumn;
            namesTable.PrimaryKey = keys;
            object[] row1 = { null, "zhang4", "hui4" ,13};
            object[] row2 = { null, "zhang5", "hui5",14 };
            object[] row3 = { null, "zhang6", "hui6",15 };
            object[] row4 = { null, "zhang7", "hui7",16 };
            object[] row5 = { null, "zhang8", "hui8", 18 };
            namesTable.Rows.Add(row1);
            namesTable.Rows.Add(row2);
            namesTable.Rows.Add(row3);
            namesTable.Rows.Add(row4);
            namesTable.Rows.Add(row5);
            // Return the new DataTable.
            return namesTable;
        }
        private DataTable MakeNamesTable3(string s)
        {
            // Create a new DataTable titled 'Names.'
            DataTable namesTable = new DataTable(s);

            // Add three column objects to the table.
            DataColumn idColumn = new DataColumn();
            idColumn.DataType = System.Type.GetType("System.Int32");
            idColumn.ColumnName = "id";
            idColumn.AutoIncrement = true;
            namesTable.Columns.Add(idColumn);

            DataColumn fNameColumn = new DataColumn();
            fNameColumn.DataType = System.Type.GetType("System.String");
            fNameColumn.ColumnName = "Fname";
            fNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(fNameColumn);

            DataColumn lNameColumn = new DataColumn();
            lNameColumn.DataType = System.Type.GetType("System.String");
            lNameColumn.ColumnName = "LName";
            lNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(lNameColumn);


            // Create an array for DataColumn objects.
            DataColumn[] keys = new DataColumn[1];
            keys[0] = idColumn;
            namesTable.PrimaryKey = keys;
            object[] row1 = { null, "zhang9", "hui9" };
            object[] row2 = { null, "zhang10", "hui10" };
            object[] row3 = { null, "zhang11", "hui11" };
            object[] row4 = { null, "zhang12", "hui12" };
            namesTable.Rows.Add(row1);
            namesTable.Rows.Add(row2);
            namesTable.Rows.Add(row3);
            namesTable.Rows.Add(row4);
            // Return the new DataTable.
            return namesTable;
        }
        private DataTable MakeNamesTable(string s)
        {
            // Create a new DataTable titled 'Names.'
            DataTable namesTable = new DataTable(s);

            // Add three column objects to the table.
            DataColumn idColumn = new DataColumn();
            idColumn.DataType = System.Type.GetType("System.Int32");
            idColumn.ColumnName = "id";
            idColumn.AutoIncrement = true;
            namesTable.Columns.Add(idColumn);

            DataColumn fNameColumn = new DataColumn();
            fNameColumn.DataType = System.Type.GetType("System.String");
            fNameColumn.ColumnName = "Fname";
            fNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(fNameColumn);

            DataColumn lNameColumn = new DataColumn();
            lNameColumn.DataType = System.Type.GetType("System.String");
            lNameColumn.ColumnName = "LName";
            lNameColumn.DefaultValue = "--";
            namesTable.Columns.Add(lNameColumn);

            DataColumn idColumn1 = new DataColumn();
            idColumn1.DataType = System.Type.GetType("System.Int32");
            idColumn1.ColumnName = "id1";
            namesTable.Columns.Add(idColumn1);

            DataColumn fNameColumn1 = new DataColumn();
            fNameColumn1.DataType = System.Type.GetType("System.String");
            fNameColumn1.ColumnName = "Fname1";
            fNameColumn1.DefaultValue = "--";
            namesTable.Columns.Add(fNameColumn1);

            DataColumn lNameColumn1= new DataColumn();
            lNameColumn1.DataType = System.Type.GetType("System.String");
            lNameColumn1.ColumnName = "LName1";
            lNameColumn1.DefaultValue = "--";
            namesTable.Columns.Add(lNameColumn1);
            DataColumn lAgeColumn1 = new DataColumn();
            lAgeColumn1.DataType = System.Type.GetType("System.Int32");
            lAgeColumn1.ColumnName = "Lage";
            namesTable.Columns.Add(lAgeColumn1);
            // Create an array for DataColumn objects.

            // Create an array for DataColumn objects.
            //DataColumn[] keys = new DataColumn[1];
            //keys[0] = idColumn;
            //namesTable.PrimaryKey = keys;
            return namesTable;
        }

        //合并单元格
        protected void MergingCells(Infragistics.WebUI.UltraWebGrid.UltraWebGrid Grid, int rowMax, int rowMin, int colMax, int colMin, string mc)
        {
            if (rowMax > 0)
            {
                Infragistics.WebUI.UltraWebGrid.UltraGridCell cell = Grid.Rows[rowMin].Cells[colMin];
                cell.Activated = false;
                cell.ColSpan = colMax - colMin + 1;
                cell.RowSpan = rowMax - rowMin + 1;
                Infragistics.WebUI.UltraWebGrid.UltraGridRow row = cell.Row;
                cell.Text = mc;
                cell.Style.HorizontalAlign = HorizontalAlign.Center;
                Grid.DisplayLayout.ActiveCell = cell;
                cell.AllowEditing = Infragistics.WebUI.UltraWebGrid.AllowEditing.No;
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值