Datatable中经常用到的一个方法——Select,微软提供了四个函数的重载,分别是
- Select()——获取所有 System.Data.DataRow 对象的数组
- Select(string filterExpression)——按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 System.Data.DataRow 对象的数组
- Select(string filterExpression, string sort)——获取按照指定的排序顺序且与筛选条件相匹配的所有 System.Data.DataRow 对象的数组
- Select(string filterExpression, string sort, DataViewRowState recordStates)——获取与排序顺序中的筛选器以及指定的状态相匹配的所有 System.Data.DataRow 对象的数组
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { DataTable dt = new DataTable(); dt.Columns.Add("USER_DEPARTMENT", typeof(string)); dt.Columns.Add("USER_NAME", typeof(string)); dt.Columns.Add("USER_PWD", typeof(string)); dt.Columns.Add("USER_AGE", typeof(int)); dt.Rows.Add(new object[] {"销售部","白起","123456",25 }); dt.Rows.Add(new object[] { "销售部", "赵牧", "123456", 22 }); dt.Rows.Add(new object[] { "生产部", "李斯", "123456", 27 }); dt.Rows.Add(new object[] { "生产部", "商鞅", "123456", 20 }); //Select() 获取所有的数组 System.Data.DataRow 对象 DataRow[] dataRows = dt.Select(); foreach(DataRow row in dataRows) { Console.WriteLine(row["USER_DEPARTMENT"]+" "+row["USER_NAME"]+" "+ row["USER_AGE"]); } Console.WriteLine("-----------------------------"); //Select(string filterExpression) 获取所有的数组 System.Data.DataRow 与筛选条件匹配的对象 string strDept = "销售部"; DataRow[] dataRows1 = dt.Select("USER_DEPARTMENT='"+ strDept+"'"); foreach (DataRow row in dataRows1) { Console.WriteLine(row["USER_DEPARTMENT"] + " " + row["USER_NAME"] + " " + row["USER_AGE"]); } Console.WriteLine("-----------------------------"); //Select(string filterExpression, string sort) 获取所有的数组 System.Data.DataRow 相匹配的筛选条件,在指定的排序顺序中的对象 DataRow[] dataRows2 = dt.Select("USER_DEPARTMENT='" + strDept + "'", "USER_AGE asc"); foreach (DataRow row in dataRows2) { Console.WriteLine(row["USER_DEPARTMENT"] + " " + row["USER_NAME"] + " " + row["USER_AGE"]); } Console.ReadLine(); } } }
运行结果:
销售部 白起 25
销售部 赵牧 22
生产部 李斯 27
生产部 商鞅 20
-----------------------------
销售部 白起 25
销售部 赵牧 22
-----------------------------
销售部 赵牧 22
销售部 白起 25