DataView 类

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

命名空间:  System.Data
程序集:  System.Data(在 System.Data.dll 中)

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">

DataView 的一个主要功能是允许在 Windows 窗体和 Web 窗体上进行数据绑定。

另外,可自定义 DataView 来表示 DataTable 中数据的子集。此功能让您拥有绑定到同一 DataTable、但显示不同数据版本的两个控件。例如,一个控件可能绑定到显示表中所有行的 DataView,而另一个控件可能配置为只显示已从 DataTable 删除的行。DataTable 也具有 DefaultView 属性。它返回表的默认 DataView。例如,如果希望在表上创建自定义视图,请在 DefaultView 返回的 DataView 上设置 RowFilter

若要创建数据的筛选和排序视图,请设置 RowFilter Sort 属性。然后,使用 Item 属性返回单个 DataRowView

还可使用 AddNew Delete 方法从行的集合中进行添加和删除。在使用这些方法时,可设置 RowStateFilter 属性以便指定只有已被删除的行或新行才可由 DataView 显示。

说明:

如果不显式指定 DataView 的排序条件,将按 DataView 的相应 DataRow 在 DataTable.RowsDataRowCollection 中的索引来对 DataView 中的 DataRowView 对象进行排序。

LINQ to DataSet 允许开发人员使用 LINQ 来创建对 DataSet 的复杂且功能强大的查询。LINQ to DataSet 查询返回 DataRow 对象的枚举,但在绑定方案中不易使用。DataView 可以从 LINQ to DataSet 查询创建,并具有该查询的筛选和排序特征。通过提供基于 LINQ 表达式的筛选和排序(可执行比基于字符串的筛选和排序更复杂、功能更强大的筛选和排序操作),LINQ to DataSet 可扩展 DataView 的功能。有关更多信息,请参见数据绑定和 LINQ to DataSet

private void DemonstrateDataView()
{
// Create one DataTable with one column.
DataTable table = new DataTable("table");
DataColumn colItem = new DataColumn("item",
Type.GetType("System.String"));
table.Columns.Add(colItem);

// Add five items.
DataRow NewRow;
for(int i = 0; i <5; i++)
{
NewRow = table.NewRow();
NewRow["item"] = "Item " + i;
table.Rows.Add(NewRow);
}
// Change the values in the table.
table.Rows[0]["item"]="cat";
table.Rows[1]["item"] = "dog";
table.AcceptChanges();

// Create two DataView objects with the same table.
DataView firstView = new DataView(table);
DataView secondView = new DataView(table);

// Print current table values.
PrintTableOrView(table,"Current Values in Table");

// Set first DataView to show only modified
// versions of original rows.
firstView.RowStateFilter=DataViewRowState.ModifiedOriginal;

// Print values.
PrintTableOrView(firstView,"First DataView: ModifiedOriginal");

// Add one New row to the second view.
DataRowView rowView;
rowView=secondView.AddNew();
rowView["item"] = "fish";

// Set second DataView to show modified versions of
// current rows, or New rows.
secondView.RowStateFilter=DataViewRowState.ModifiedCurrent
| DataViewRowState.Added;
// Print modified and Added rows.
PrintTableOrView(secondView,
"Second DataView: ModifiedCurrent | Added");
}

private void PrintTableOrView(DataTable table, string label)
{
// This function prints values in the table or DataView.
Console.WriteLine("/n" + label);
for(int i = 0; i<table.Rows.Count;i++)
{
Console.WriteLine("/table" + table.Rows[i]["item"]);
}
Console.WriteLine();
}

private void PrintTableOrView(DataView view, string label)
{

// This overload prints values in the table or DataView.
Console.WriteLine("/n" + label);
for(int i = 0; i<view.Count;i++)
{
Console.WriteLine("/table" + view[i]["item"]);
}
Console.WriteLine();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值