C#筛选DataTable的数据

时间:2025-03-12 08:15:14

Demo示例三步走

  1. 新建个DataTable,写数据
  2. 筛选DataTable的数据
  3. 新建一个新的DataTable接收筛选后的DataTable数据

一、 新建个DataTable,写数据

DataTable oldDt = new DataTable();//新建一个空的DataTable
oldDt.Columns.Add("name", typeof(string));//新建列名name 姓名
oldDt.Columns.Add("age", typeof(Int32));//新建列名age 年龄
DataRow dr = null;
for (int i = 0; i < 2; i++)
{
    dr = oldDt.NewRow();//新建一行
    dr["name"] = "张三" + i;//姓名赋值
    dr["age"] = 18 + i;//年龄赋值
    oldDt.Rows.Add(dr);//将这一行赋值到oldDt中
}

以上新建的DataTable最后的值如下

name age
张三0 18
张三1 19

二、 筛选DataTable的数据

使用Select语法,参数中可以传递查询条件,和sql语句很像。
最后返回的值是由DataRow对象组成的数组

DataRow[] rows = oldDt.Select("name='张三1'");//查询筛选

筛选出名字是【张三1】的数据

三、新建一个新的DataTable接收筛选后的DataTable数据

DataTable newDt = new DataTable();//新建一个新的空DataTable
newDt = oldDt.Clone();//克隆DataTable的结构
foreach (DataRow row in rows)
{
    newDt.Rows.Add(row.ItemArray);//对新的dt赋值
}

最后得到的DataTable的值

name age
张三1 19