如果需要对一个表的数据进行分解 得到不同条件的数据,可以利用DataTable.RowFilter属性。这样可以减少对数据库的连接操作。
DataTable Db
=
new
DataTable();
Db.Columns.Add( " id " , typeof ( int ));
Db.Columns.Add( " Name " , typeof ( string ));
for ( int i = 1 ; i < 10 ; i ++ )
{
DataRow dr = Db.NewRow();
dr[0] = i;
dr[1] = "test" + Convert.ToString(i);
Db.Rows.Add(dr);
}
DataView Dv = Db.DefaultView;
Dv.RowFilter = " id>5 " ;
for ( int i = 0 ; i < Dv.Count; i ++ )
{
Response.Write(Dv[i][0] + "*" + Dv[i][1]);
Response.Write("</br></br>");
}
Dv.RowFilter = " id>1 and id<5 " ;
for ( int i = 0 ; i < Dv.Count; i ++ )
{
Response.Write(Dv[i][0] + "*" + Dv[i][1]);
Response.Write("</br>");
}
Db.Columns.Add( " id " , typeof ( int ));
Db.Columns.Add( " Name " , typeof ( string ));
for ( int i = 1 ; i < 10 ; i ++ )
{
DataRow dr = Db.NewRow();
dr[0] = i;
dr[1] = "test" + Convert.ToString(i);
Db.Rows.Add(dr);
}
DataView Dv = Db.DefaultView;
Dv.RowFilter = " id>5 " ;
for ( int i = 0 ; i < Dv.Count; i ++ )
{
Response.Write(Dv[i][0] + "*" + Dv[i][1]);
Response.Write("</br></br>");
}
Dv.RowFilter = " id>1 and id<5 " ;
for ( int i = 0 ; i < Dv.Count; i ++ )
{
Response.Write(Dv[i][0] + "*" + Dv[i][1]);
Response.Write("</br>");
}