Лучший способ добавить новый столбец в таблицу данных на основе существующего столбца

У меня есть таблица данных с данными. Мне нужно добавить еще один столбец в таблицу данных с тем же значением другого столбца, но с меньшей точностью.

Т.е. исходный столбец будет иметь значение 12,123, но новый столбец будет иметь значение 12,12.

Как лучше всего это сделать?


person Ananth    schedule 23.12.2010    source источник


Ответы (3)


Создайте вычисляемый столбец, чтобы целостность ваших данных никогда не нарушалась

В этой статье можно найти из Как

person Jahan    schedule 23.12.2010
comment
Привет @Jani, не могли бы вы предоставить полный обходной путь для этого? Ваша ссылка не работает. - person felipekm; 25.07.2013
comment
@FelipeKM Эй, быстрый поиск даст много результатов, взгляните на codeproject.com/Articles/447249/ - person Jahan; 26.07.2013

Что-то вроде этого

            yourDataTable.Columns.Add("newCol", typeof(double));

            foreach (System.Data.DataRow row in yourDataTable.Rows)
            {
                row["newCol"] = Math.Round(Convert.ToDouble(row["oldCol"]), 2);                    
            }
person RameshVel    schedule 23.12.2010
comment
Спасибо! Я использовал ваш пример, чтобы добавить новый невычисляемый столбец в существующую таблицу sectionDS.Tables[0].Columns.Add("IPAddr", typeof(long)); foreach (DataRow row in sectionDS.Tables[0].Rows) { row["IPAddr"] = 0x0100007F; } - person Jim Lahman; 27.08.2012

Некоторые реализации сетки, такие как DevExpress XtraGrid, позволяют иметь несвязанные столбцы и легко задавать для них значения. То же самое потребует взлома базового DataGridView, поэтому у меня есть другое предложение. Добавьте в свой класс новое свойство только для чтения: decimal value1 { get; установлен; } десятичное значение2 { получить { вернуть Math.Round (значение1, 2); } } Таким образом, вам даже не нужно беспокоиться о формате отображения столбцов.

person fejesjoco    schedule 23.12.2010
comment
Спасибо .. Но я не привязываю эту таблицу данных к какому-либо сеточному представлению. Я просто использую это для некоторых расчетов, поэтому я не думаю, что это решение будет работать здесь. - person Ananth; 23.12.2010