Arhn - архитектура программирования

Как получить имя столбца для значения столбца в DataRow, возвращаемом методом GetChanges()?

У меня есть представление данных, основанное на четырех столбцах, скажем, с именами 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?

20.12.2013

  • dc.ИмяКолонки? См. документы msdn.microsoft. com/ru-ru/library/ 20.12.2013
  • Спасибо за быстрый ответ Стив!! Это сработало 20.12.2013
  • В любом случае, VS может неявно генерировать метод обновления для набора данных на основе представления? 20.12.2013

Ответы:


1

GetChanges возвращает DataTable со всеми измененными строками. Вы зацикливаете все столбцы этой таблицы, так что у вас уже есть все DataColumns. У него есть свойство ColumnName. который вы, вероятно, ищете.

// ...
foreach (DataColumn dc in DgvChangedDT.Columns)
{
  string nameOfColumn = dc.ColumnName; // <----
  OrgVal = dr[dc, DataRowVersion.Original].ToString();
  CurrVal = dr[dc, DataRowVersion.Current].ToString();
  MessageBox.Show("Original Value: " + OrgVal + " ," + " Current Value: " +           CurrVal);
}
// ...
20.12.2013
  • В любом случае, VS может неявно генерировать метод обновления для набора данных на основе представления? 20.12.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..