У меня есть представление данных, основанное на четырех столбцах, скажем, с именами A, B, C, D. Теперь, если я внесу изменения в строку, я могу уловить эти изменения, используя следующий код:
DataTable DgvChangedDT = estDataSet.mat_comp_dtl_v.GetChanges();
try
{
foreach (DataRow dr in DgvChangedDT.Rows)
{
Status = dr.RowState.ToString();
if (Status == "Modified")
{
foreach (DataColumn dc in DgvChangedDT.Columns)
{
OrgVal = dr[dc, DataRowVersion.Original].ToString();
CurrVal = dr[dc, DataRowVersion.Current].ToString();
MessageBox.Show("Original Value: " + OrgVal + " ," + " Current Value: " + CurrVal);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Exception: " + ex);
}
}
Приведенный выше код отлично работает и дает исходные и текущие значения столбца в наборе данных в том порядке, в котором они появляются в наборе данных. Но моя проблема в том, что я хочу получить имя столбца для значения столбца на каждой итерации, которое я хочу использовать для создания моего оператора обновления для отправки в базу данных. Это необходимо, потому что DataSet содержит представление вместо таблицы, и, следовательно, Visual Studio (2010) не создает неявно метод Update для DataSet.
Может ли кто-нибудь предложить код для получения имени столбца для каждого значения постоянного тока во втором цикле foreach?