C# DataTable排序、查询、合并操作

本文介绍如何使用DataTable进行数据查询、排序及合并操作。包括使用Select方法进行条件查询,并演示了Find方法检索主键的方式。此外还提供了排序和合并数据的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataTable查询。  


里说到的查询有两种。

1.DataTable.Select
2.DataTable.Rows.Find

a>先建立一个DataTable供使用吧。

  /// <summary>
        /// 获取单张表
        /// </summary>
        /// <returns></returns>
        public static DataTable GetTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Id", typeof(int)));
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Age", typeof(int)));
            DataRow dr = dt.NewRow();
            dr["Id"] = 1;
            dr["Name"] = "tangh";
            dr["Age"] = 20;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 2;
            dr["Name"] = "tangha";
            dr["Age"] = 19;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 3;
            dr["Name"] = "tanghao";   
dr["Age"] = 21;
            dt.Rows.Add(dr);
            return dt;
        }


         
2.然后我们来使用第一种Select方法。

/// <summary> /// 使用DataTable.Select方法检索 /// </summary> public static void VilideDataTableSelect() { DataTable dt = GetTable(); // 类似where条件查询,可以使用Id=2 and Name=ddd DataRow[] rows = dt.Select("Id=2 and Name like 'tang%'"); // select类似where条件 foreach (DataRow dr in rows) { Console.Write(string.Format("Id={0},Name={1},Age={2}", dr["Id"], dr["Name"], dr["Age"])); } }

3.最后使用以下,Find方法。

/// <summary> /// 使用DataTable.Rows.Find方法检索 /// </summary> public static void VilideDataRowFind() { DataTable dt = GetTable(); // 设置主键,可以使用复合主键 dt.PrimaryKey = new DataColumn[] { dt.Columns["Id"] }; DataRow dr = dt.Rows.Find(2); // 查找Id=2的。即,这里检索主键。 Console.Write(string.Format("Id={0},Name={1},Age={2}", dr["Id"], dr["Name"], dr["Age"])); }

 1、排序     1.1、利用查询排序

DataRow[] dataRows = dataTable.Select("条件", "id asc"); //或多列排序 DataRow[] dataRows = dataTable.Select("条件", "id asc,name asc,..."); //对所有的进行排序 DataRow[] dataRows = dataTable.Select("1=1", "id asc,name asc,...");

    1.2、默认视图排序

DataView dataView = dataTable.DefaultView; dataView.Sort = "id asc"; dataTable = dataView.ToTable();

    2、搜索
    如果单纯搜索,

DataRow[] dataRows = dataTable.Select("条件");

或者

int id; string name; DataRow[] dataRows = dataTable.Select(string.Format(@"id={0} and name={1}",id,name));

如果对搜索结果排序,如同1.1。
     说明:select方法如同sql语句对单表的查询,条件如同sql语句的where之后的部分,>,<,=,LIKE等都可以使用。
    3、合并
    合并的对象必须结构要一致,如果不一致先转换一致。然后,利用Merge方法,

DataTable dataTable1 = null; DataTable dataTable2 = null; dataTable1.Merge(dataTable2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值