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;
}
}
}
}