ASP.NET基础教程在DataTable对象中过滤与排序DataRow对象

要过滤与排序DataTable对象中的DataRow,用DataTable的Select()方法,Select()方法调用:

DataRow[] Select()

DataRow[] Select(string filterExpression)

DataRow[] Select(string filterExpression,string sortExpression)

DataRow[] Select(string filterExpression,string
SortExpression,DataViewRowState myDataViewRowState)
其中:
filterExpression:
     指定要选择的行 sortExpression:指定选择的行如何排序
myDataViewRowState:
     指定要选择的行的状态,可以将myDataViewRowState设置为System.Data.DataViewRowState枚举中定义的常量之一:

例代码如下:

//打开数据库
con.Open();

//SQL语句
string oSql="select id,name,station,level,dept from verify";

//从数据库中提取数据
SqlDataAdapter da=new SqlDataAdapter(oSql,con);

//创建并声明记录集对象
DataSet ds=new DataSet();

//将数据库提取出的数据加载到记录集
da.Fill(ds,"verify");

//关闭数据库
con.Close();
 
//从记录集中获取表对象
DataTable dt=ds.Tables[“verify”];
 
//返回DataTable中所有行,不进行任何过滤和排序
DataRow[] dr=dt.select();
 
//使用过滤表达式,只返回dept ,DataColumn值等于信息组的DataRow对象
DataRow[] dr=dt.select(“dept=‘信息组’”);
 
//使用过滤和排序表达式按降序将DataRow对象排序
DataRow[] dr=dt.select(“dept=‘信息组’”,“id desc”);
 
//以原行进行过滤和排序
DataRow[] dr=dt.select(“dept=‘信息组’”,“id desc”,DataViewRowState.OriginalRows);
 
//循环将行集中的内容在页面上输出输出
foreach(DataRow datarow in dr)
{
  Response.Write(datarow["name"].ToString()+"<br>");
  Response.Write(datarow["station"].ToString()+"<br>");
  Response.Write(datarow["level"].ToString()+"<br>");
  Response.Write(datarow["dept"].ToString()+"<br>");
}

过滤与排序表达式与SELECT语句的WHERE与ORDER BY从句相似,因此可以在调用SELECT()方法进使用非常强大的表达式.
例如:
可以在过滤表达式中使用AND、OR、NOT、IN、LIKE、比较运算符、算术运算符、通配符和聚合函数。

-----------------------------------------------------------------------------------------------
语法如下如下:
//创建一个过滤条件的字符串
string filter = "字段名='"+条件+"'";
//取出符合条件的记录
DataRow[] rows = DataTable.Select(filter);
这样记录就过滤出来了。

-----------------------------------------------------------------------------------------------
SqlConnection sqlconn = new SqlConnection(connString);
SqlDataAdapter sqladp = new SqlDataAdapter(sql, sqlconn);DataSet ds = new DataSet();sqladp.Fill(ds);
            foreach (DataRow dr in ds.Tables[0].Rows)Console.WriteLine(dr[0].ToString()+" "+dr[1].ToString());

原文地址:https://www.cnblogs.com/beeone/p/2010782.html