【ASP.NET随笔】DataRow和DataRowView
可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。
DataView一般通过DataTable.DefaultView 属性来建立,或者再通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。
DataGrid实际显示的是DataTable经过筛选的DataView
DataRow是对应于DataTable的; (实际存在的) 单对多
DataRowView是对应于DataView的; (虚拟的) 单对多
DataRowView.Row返回对应的当前行
通过设置DataView的RowStateFilter 属性将确定公开 DataRow 的哪一个个版本。
DataView catView =new DataView(catDS.Tables["Categories"]);
Console.WriteLine("Current Values:");
WriteView(catView);
Console.WriteLine("Original Values:");
catView.RowStateFilter = DataViewRowState.ModifiedOriginal;
WriteView(catView);
publicstaticvoid WriteView(DataView thisDataView)
{
foreach (DataRowView rowView in thisDataView)
{
for (int i =0; i < thisDataView.Table.Columns.Count; i++)
Console.Write(rowView[i] +" ");
Console.WriteLine();
}
}