Vinodh Muthusamy Ответов: 2

Чтобы присвоить datarow новое значение в C#


я смотрю в datatable и извлекаю строку за строкой,

вообще 50 значений длины. я хочу присвоить 10-е значение длины как "текст".

но он не хранится в datarow после присвоения

foreach (DataRow row in dtSource.Rows)
                   {


                           if (row.ItemArray[17].ToString().Length > 32)
                           {
                               string ss=   "text";
                               row.ItemArray[17] = ss; // here it is not added in itemarray
                           }


                       }

                   }


Что я уже пробовал:

foreach (DataRow row in dtSource.Rows)
                   {


                           if (row.ItemArray[17].ToString().Length > 32)
                           {
                               string ss=   "text";
                               row.ItemArray[17] = ss; // here it is not added in itemarray
                           }


                       }

                   }

2 Ответов

Рейтинг:
1

Richard MacCutchan

Ссылка row.ItemArray возвращает содержимое строки в виде нового ItemArray. Поэтому, когда вы меняете значение, вы меняете его только в массиве, а не в строке. Видеть объект DataRow.Свойство ItemArray (System.Data)[^].


Maciej Los

5ed!

Рейтинг:
0

Maciej Los

Попробовать это:

foreach (DataRow row in dtSource.Rows)
{
       if (row[17].ToString().Length > 32)
       {
            string ss=   "text";
            row[17] = ss;
       }
}

Видеть: Класс DataRow (System.Data)[^]