+++ 本例演示如何使用DataTable的DataViewRowState
protected void Page_Load(object sender, EventArgs e)
{
// 创建一个只有一列的一个表,并添加十行
DataTable dataTable = new DataTable("dataTable");
DataColumn dataColumn = new DataColumn("dataColumn");
dataTable.Columns.Add(dataColumn);
DataRow dataRow;
for (int i = 1; i < 6; i++)
{
dataRow = dataTable.NewRow();
dataRow["dataColumn"] = "item_" + i;
dataTable.Rows.Add(dataRow);
}
dataTable.AcceptChanges();
foreach (DataRow dr in dataTable.Rows)
{
Response.Write(dr[0].ToString() + "</br>");
}
// 创建一个表的视图
DataView dataView = new DataView(dataTable);
// 改变第一行第一列的值,并添加一行
dataTable.Rows[1]["dataColumn"] = "item_1 Hello"; // 修改的行
dataRow = dataTable.NewRow(); // 增加的行
dataRow["dataColumn"] = "item_World";
dataTable.Rows.Add(dataRow);
// 在视图中设置行状态过滤器,只显示增加和修改的行,再输出
dataView.RowStateFilter = DataViewRowState.Added | DataViewRowState.ModifiedCurrent;
PrintView(dataView, "ModifiedCurrent and Added Rows");
// 在视图中设置过滤器,显示被修改行的原始行
dataView.RowStateFilter = DataViewRowState.ModifiedOriginal;
PrintView(dataView, "ModifiedOriginal Rows");
// 删除三行
dataTable.Rows[1].Delete();
dataTable.Rows[2].Delete();
dataTable.Rows[3].Delete();
// 在视图中设置过滤器,只显示增加和修改的行
dataView.RowStateFilter = DataViewRowState.Deleted;
PrintView(dataView, "Deleted Rows");
// 在视图中设置过滤器,仅显示当前
dataView.RowStateFilter = DataViewRowState.CurrentRows;
PrintView(dataView, "Current Rows");
// 在视图中设置过滤器,只显示为改变的行
dataView.RowStateFilter = DataViewRowState.Unchanged;
PrintView(dataView, "Unchanged Rows");
// 在视图中设置过滤器,只显示原始行
dataView.RowStateFilter = DataViewRowState.OriginalRows;
PrintView(dataView, "OriginalRows Rows");
}
private void PrintView(DataView dataView, string label)
{
Response.Write("</br>" + label + ":</br>");
for (int i = 0; i < dataView.Count; i++)
{
Response.Write(dataView[i]["dataColumn"] + "</br>");
}
}
+++ 说明
1) DataViewRowState 是个枚举类型
None是无。
Unchanged是未更改的行。
Added是一个新行。
Deleted是已删除的行。
ModifiedCurrent是已修改的原始数据的当前版本。
ModifiedOriginal是已修改的数据的原始版本。
OriginalRows是包括未更改行和已删除行的原始行。
CurrentRows是包括未更改行、新行和已修改行的当前行。
ADO.NET_第五篇_DataTable_09DataViewRowState
最新推荐文章于 2020-08-05 16:09:31 发布