C#中如何对DataTable执行”行过滤”呢?


摘要:
下文讲述c#中对DataTable行过滤的方法分享,如下所示;

DataTable行过滤是在C#代码对DataTable数据表进行过滤的方法,
其具体实现思路,如下所示:

实现思路:  
      借助DefaultView的RowFilter属性对DataTable行进行过滤处理
 
  RowFilter语法:
      DataTable.DefaultView.RowFilter = "字段名='' or 字段名 is  null";

  RowFilter注意事项:
    1.RowFilter后过滤数据,需指定列名称
    2.RowFilter后跟的运算符需使用引号括起来
    3.RowFilter返回一个视图,并不会影响原DataTable中的数据
    4.RowFilter不支持不等于(<>、!=、not like),
      但可使用in和not in代替不等于实现其功能 

    5. DataView支持使用"and or"连接多条件

例:
RowFilter示例说明

 using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;


namespace consoleTest
{ 
    class Program
    {
        static void Main(string[] args)
        { 
            Console.WriteLine("www.maomao365.com cSharp示例分析:");

            //定义一个DataTable
            //初始化数据表
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[] { new DataColumn("info", typeof(string)),
                                        new DataColumn("sort", typeof(string)),
                                        new DataColumn("qty", typeof(int)) });
            dt.Rows.Add(new object[] { "猫猫教程", "A", 88 });
            dt.Rows.Add(new object[] { "maomao365.com", "A", 98 });
            dt.Rows.Add(new object[] { "maomao365.com", "A", 87 });
            dt.Rows.Add(new object[] { "maomao365.com", "B", 60 });
            dt.Rows.Add(new object[] { "猫猫教程", "B", 99 });

            DataView dtView = dt.DefaultView;

           dtView.RowFilter="info not in('maomao365.com')   ";
           dtView.RowFilter = "sort  in('A') ";
            /*
             或 dtView.RowFilter="info not in('maomao365.com')  and sort in('A')  ";
              */

            foreach (DataRowView t in dtView)
            {
                Console.WriteLine(t["info"].ToString());
                Console.WriteLine(t["sort"].ToString());
                Console.WriteLine(t["qty"].ToString());
            }

            Console.ReadLine();
        }

  


    }
} 
cSharp之RowFilter用法简介说明

cSharp之RowFilter用法简介说明