获取DataTable单元格修改前的值示例

//创建 DataTable
DataTable categories = new DataTable("Categories");

//添加字段
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "CategoryID";
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
categories.Columns.Add(column);

column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "CategoryName";
categories.Columns.Add(column);

//设置主键
DataColumn[] pKey = new DataColumn[1];
pKey[0] = categories.Columns["CategoryID"];
categories.PrimaryKey = pKey;

//添加记录
DataRow newRow = categories.NewRow();
newRow["CategoryName"] = "Category1";
categories.Rows.Add(newRow);

newRow = categories.NewRow();
newRow["CategoryName"] = "Category2";
categories.Rows.Add(newRow);

//提交更新
categories.AcceptChanges();

for (int i = 0; i < categories.Rows.Count; i++)
    textBox1.Text += categories.Rows[i].RowState + "\r\n";
textBox1.Text += "----------------------------------\r\n";

//修改值
categories.Rows[0]["CategoryName"] = "New Category1";

for (int i = 0; i < categories.Rows.Count; i++)
    textBox1.Text += categories.Rows[i].RowState + "\r\n";
textBox1.Text += "----------------------------------\r\n";

//获取原始值(修改前的值)
if(categories.Rows[0].HasVersion(DataRowVersion.Original))
    textBox1.Text += categories.Rows[0]["CategoryName", DataRowVersion.Original];

结果:

引用内容 引用内容
Unchanged
Unchanged
----------------------------------
Modified
Unchanged
----------------------------------
Category1


评论: 0 | 引用: 0 | 查看次数: 7054
发表评论
登录后再发表评论!