DataView代表DataTable对象中的一部分或全部,他们两者之间的关系相当于数据库中的表和视图的关系。DataView一般和Web服务器控件的DataGrid、Repeater及DataList配合使用。这三个对象专门用来显示数据库,功能强大。
接下来我们要示范如何利用DataTable对象的DefaultView属性来筛选和排序数据。下面这个例子可以筛选“零部件种类”为“CPU”的数据行,并先根据“品牌”字段进行递减排序,再根据“价格”字段进行递增排序。
pc表:
效果图:
代码如下:
using System.Data;
using System.Data.OleDb;
protected void Page_Load(object sender, EventArgs e)
{
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("DB.mdb");
OleDbDataAdapter ad = new OleDbDataAdapter("select * from pc",connstr);
DataSet ds = new DataSet();
ad.Fill(ds,"pc");
DataTable dt = new DataTable();
dt=ds.Tables["pc"];
dt.DefaultView.RowFilter= "零部件种类='主板'"; //筛选
dt.DefaultView.Sort="品牌 DESC, 价格 ASC"; //排序
Response.Write("<table border='1'><tr align='center'>");
for (int i = 0; i < dt.Columns.Count; i++)
Response.Write("<td>"+dt.Columns[i].Caption+"</td>");
Response.Write("</tr>");
for (int i = 0; i < dt.DefaultView.Count; i++)
{
Response.Write("<tr>");
for (int j = 0; j < dt.Columns.Count; j++)
Response.Write("<td>"+dt.DefaultView[i][j]+"</td>");
Response.Write("</tr>");
}
Response.Write("</table>");
}