using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace LZserverList
{
    public partial class LZList : System.Web.UI.Page
    {
        SqlConnection conn = new SqlConnection("server=.;database=ShifanRoadLZ0818;uid=sa;pwd=123456;");
        //处罚表查询
        string sqlcf = @"select  DJB_CF.CaseDistrict, DJB_CF.CaseYear,DJB_CF.CaseMonth, DJB_CF.CaseMoney,DJB_CF.TreeType  from DJB_CF";
        //赔补偿表查询
        string sqlpbc = @"select  DJB_PBC.CaseDistrict,DJB_PBC.CaseYear,DJB_PBC.CaseMonth, DJB_PBC.CaseMoney,DJB_PBC.TreeType  from DJB_PBC";
        //强制表查询
        string sqlqz = @"select  DJB_QZ.CaseDistrict,DJB_QZ.CaseYear,DJB_QZ.CaseMonth, DJB_QZ.CaseMoney,DJB_QZ.TreeType  from DJB_QZ";
        //许可表查询
        string sqlxk = @"select  DJB_XK.CaseDistrict as cd,DJB_XK.CaseYear as cy,DJB_XK.CaseMonth as cm, DJB_XK.CaseMoney as cmy,DJB_XK.XKType as ct  from DJB_XK";
     
        protected void Page_Load(object sender, EventArgs e)
        {
            Bind();
        }
        //绑定repeater
        public void Bind()
        {
            //string Month = "";
            //string Year = "";
            retdf.DataSource = DataTablelist();
            retdf.DataBind();
        }
        //处罚表
        public DataTable tablecf()
        {
            SqlDataAdapter sda = new SqlDataAdapter(sqlcf, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dt.Dispose();
            return dt;
        }
        //赔补偿表
        public DataTable tablepbc()
        {
            SqlDataAdapter sda = new SqlDataAdapter(sqlpbc, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dt.Dispose();
            return dt;
        }
        //强制表
        public DataTable tableqz()
        {
            SqlDataAdapter sda = new SqlDataAdapter(sqlqz, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dt.Dispose();
            return dt;
        }
        //许可表
        public DataTable tablexk()
        {
            SqlDataAdapter sda = new SqlDataAdapter(sqlxk, conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dt.Dispose();
            return dt;
        }
        //三个相同的表集合在一个表中
        public DataTable table3list()
        {
            DataTable cf = (DataTable)tablecf();

DataTable newDataTable = cf.Clone();
            object[] obj = new object[newDataTable.Columns.Count];
            //添加处罚表的数据     
            for (int i = 0; i < cf.Rows.Count; i++)
            {
                cf.Rows[i].ItemArray.CopyTo(obj, 0);
                newDataTable.Rows.Add(obj);
            }
            //添加赔补偿表的数据 
            DataTable  pbc = (DataTable)tablepbc();
            for (int i = 0; i < pbc.Rows.Count; i++)
            {
                pbc.Rows[i].ItemArray.CopyTo(obj, 0);
                newDataTable.Rows.Add(obj);
            }

//添加强制表的数据  
            DataTable qz = (DataTable)tableqz();
            for (int i = 0; i < qz.Rows.Count; i++)
            {
                qz.Rows[i].ItemArray.CopyTo(obj, 0);
                newDataTable.Rows.Add(obj);
            }
            return newDataTable;
        }
        /// <summary>
        /// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable
        /// </summary>
        /// <param name="DataTable1">表1</param>
        /// <param name="DataTable2">表2</param>
        /// <param name="DTName">合并后新的表名</param>
        /// <returns>合并后的新表</returns>
        public DataTable DataTablelist()
        {
            string DTName = "";
            DataTable list3 = (DataTable)table3list();
            DataTable xk = (DataTable)tablexk();

//克隆DataTable1的结构          
            DataTable newDataTable = list3.Clone();
            for (int i = 0; i < xk.Columns.Count; i++)
            {
                //再向新表中加入DataTable2的列结构   
                newDataTable.Columns.Add(xk.Columns[i].ColumnName);
            }
            object[] obj = new object[newDataTable.Columns.Count];
            //添加DataTable1的数据    
            for (int i = 0; i < list3.Rows.Count; i++)
            {
                list3.Rows[i].ItemArray.CopyTo(obj, 0);
                newDataTable.Rows.Add(obj);
            }
            if (list3.Rows.Count >= xk.Rows.Count)
            {
                for (int i = 0; i < xk.Rows.Count; i++)
                {
                    for (int j = 0; j < xk.Columns.Count; j++)
                    {
                        newDataTable.Rows[i][j + list3.Columns.Count] = xk.Rows[i][j].ToString();
                    }
                }
            }
            else
            {
                DataRow dr3;
                //向新表中添加多出的几行     
                for (int i = 0; i < xk.Rows.Count - list3.Rows.Count; i++)
                {
                    dr3 = newDataTable.NewRow();
                    newDataTable.Rows.Add(dr3);
                }
                for (int i = 0; i < xk.Rows.Count; i++)
                {
                    for (int j = 0; j < xk.Columns.Count; j++)
                    {
                        newDataTable.Rows[i][j + list3.Columns.Count] = xk.Rows[i][j].ToString();
                    }
                }
            }
            newDataTable.TableName = DTName; //设置DT的名字  
            return newDataTable;
        }

}

}

多个不同的表合并到一个datatable中,repeater在绑定datatable的更多相关文章

  1. [SQL]复制数据库某一个表到另一个数据库中

    SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...

  2. 将多个sass文件合并到一个文件中

    将多个sass文件合并到一个文件中 应用场景:制作angular npm包的时候,定义的一些全局样式,自定义主题色这类的情况下,多个scss文件会要合并成一个文件并写到dist文件里,发布到仓库中. ...

  3. MapReduce案例:统计共同好友+订单表多表合并+求每个订单中最贵的商品

    案例三: 统计共同好友 任务需求: 如下的文本, A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E ...

  4. 通过java 来实现对多个文件的内容合并到一个文件中

    现在有多个txt文本文件,需要把这么多个文件的内容都放到一个文件中去 以下是实现代码 package com.SBgong.test; import java.io.*; public class F ...

  5. 如何快速将多个excel表格的所有sheet合并到一个sheet中

    1.将需要合并的excel文件放在同一个文件夹下: 2.新建一个excel表格并打开,右键sheet1,查看代码,然后复制下方的代码到代码框里,点击菜单栏中的“运行”–“运行子过程/用户窗体”,等待程 ...

  6. C#拷贝一个库的表到另外一个库中(的四种方式)

    1.该方法 基本不能用于实际开发中 ,仅供学习参考 public string Copy() { //要复制的表名 string table = "AAAAA"; //构造连接字符 ...

  7. 如何将两个PDF文件合并到一个页面中

    在目前职场办公中,很多使用的文件格式是PDF文件格式,由于工作的需要,经常需要将PDF文件合并在一起,但由于PDF文件不能直接编辑修改,不能OFFICE,WPS那样,通过复制粘贴将两者合并,那如何解决 ...

  8. Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格

    Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格 在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 V ...

  9. php数组根据某一个键值,把相同键值的合并生成一个新的二维数组

    http://blog.csdn.net/xyzchenxiaolin/article/details/51700485 源数据: $infos = array( array( 'a' => 3 ...

随机推荐

  1. android 5.0新特性CardView教程

    CardView 是android5.0新加入的特性,大家先别着急,由于谷歌出了cardview的兼容包,也就是android.support.v7.widget.CardView包,所以在5.0以下 ...

  2. React-Native post和get请求

    post: fetchData (title) { fetch(REQUEST_URL, { method: 'POST', headers: { 'Accept': 'application/jso ...

  3. Sql server中根据object的定义查找object

    SELECT OBJECT_NAME(object_id) FROM sys.sql_modulesWHERE definition LIKE '%keyword to search%' 或者 SEL ...

  4. C# Process.Start()方法详解(转)

    C# Process.Start()方法详解 System.Diagnostics.Process.Start(); 能做什么呢?它主要有以下几个功能: 1.打开某个链接网址(弹窗). 2.定位打开某 ...

  5. Mysql优化之创建高性能索引(二)

    1.索引的优点 索引可以让服务器快速地定位到表的指定位置.总结下来有三大优点: 索引大大减少了服务器需要扫描的数据量 索引可以帮助服务器避免排序和临时表 索引可以将随机I/O变为顺序I/O 2.高性能 ...

  6. MSSQL 导入导出文本文件

    exec master..xp_cmdshell'net use \\192.168.1.8\testfolder "0123" /user:192.168.1.8\wjp' EX ...

  7. Canvas基础学习(一)——实现简单时钟显示

    HTML5最受欢迎的功能就是<canvas>元素.这个元素负责在页面中设定一个区域,然后就可以通过JavaScript动态地在这个区域中绘制图形.关于<canvas>元素的一些 ...

  8. 【测试技术】ant中的for循环用法

    有的时候,我们希望ant中也能类似脚本语言一样进行for循环,以实现一些重复性工作.由于ant核心包并未提供此功能,所以需要下载一个扩展包扔到ant的lib目录下去.详细步骤如下: 1.下载核心包:a ...

  9. 正式学习React(四) 前序篇

    预热 redux 函数内部包含了大量柯里化函数以及代码组合思想 柯里化函数(curry) 通俗的来讲,可以用一句话概括柯里化函数:返回函数的函数 // example const funcA = (a ...

  10. Inno Setup使用上的几个问题 (转)

    Inno Setup使用上的几个问题: [问题一:Inno Setup 执行REG文件代码?][Run]Filename: "{win}\regedit.exe";Paramete ...