从你说什么,我认为唯一的出路是创建窗体上的重复数据集存储旧数据并运行在要产生的电子邮件中的点进行比较。
您可以使用Dataset.Copy
复制结构和数据。
但是,现在,我想它总是有Datset.GetChanges()
方法及DataSet.HasChanges()
示例代码沿Dataset.AcceptChanges()
从这个link:
if(dataSet.HasChanges(DataRowState.Modified |
DataRowState.Added)&& dataSet.HasErrors)
{
// Use GetChanges to extract subset.
changesDataSet = dataSet.GetChanges(
DataRowState.Modified|DataRowState.Added);
PrintValues(changesDataSet, "Subset values");
// Insert code to reconcile errors. In this case, reject changes.
foreach(DataTable changesTable in changesDataSet.Tables)
{
if (changesTable.HasErrors)
{
foreach(DataRow changesRow in changesTable.Rows)
{
//Console.WriteLine(changesRow["Item"]);
if((int)changesRow["Item",DataRowVersion.Current ]> 100)
{
changesRow.RejectChanges();
changesRow.ClearErrors();
}
}
}
}
// Add a column to the changesDataSet.
changesDataSet.Tables["Items"].Columns.Add(
new DataColumn("newColumn"));
PrintValues(changesDataSet, "Reconciled subset values");
// Merge changes back to first DataSet.
dataSet.Merge(changesDataSet, false,
System.Data.MissingSchemaAction.Add);
}
PrintValues(dataSet, "Merged Values");
难道只有你有ASP页面 - 或你有权访问他们使用的数据类吗?他们是否实现了INotifyProperty更改? – ChrisBD 2012-01-16 17:32:30
@ChrisBD该网站如果很基本,并且不遵循任何特定的设计模式。数据被拖入“Object”或“DataSet”中,并手动应用于任何需要数据的控件。例如,'txtFirstName = myDataSet.Tables(0).Rows(0)(“FirstName”)'。这不是我喜欢做的东西的方法,但我不想重写整个网站,所以我们要按照他们已经设置的方式进行。 – Rachel 2012-01-16 17:37:30
@Rachel - 你想让电子邮件包含原始的和新的值,或者你只需要知道一个字段*有*改变? – 2012-01-16 17:38:16