2013-04-03 5 views
2

Мне нужно немного управлять этой концепцией DataTable. Я хранение данных в DataTable, который я Инициализировать сначала добавить колонку так:Столбец добавления данных DataTable не добавляет строку?

DataTable outputData = new DataTable(); 
outputData.Columns.Add("Reference/Group"); 

Теперь, если я пишу в файл CSV (используя свой собственный класс), я получаю то, что вы ожидали бы , вид в таблицу программного обеспечения, как:

   A 
1 Reference/Group 

Но когда я иду в моем сценарии считать, что строка 1 существует (с помощью ссылки outputData.Rows[0]) я получаю:

Exception: There is no row at position 0. 

Однако, если я пытаюсь добавить строка с выше содержания, он жалуется, что нет колонки. Если я указываю столбец затем добавить строку, я могу сослаться Rows[0], но к тому времени у меня есть два ряда, как:

   A 
1 Reference/Group 
2 Some new row 

Что правильный подход здесь и в чем причина такого поведения?

ответ

5

Вы должны использовать

outputData.Columns[0].ColumnName 

вместо

outputData.Rows[0] 

Поскольку outputData.Columns.Add("Reference/Group"); не будет создавать новую строку для вас. И вы используете имя столбца для ячейки A1, а не строки данных

1

Все это говорит о том, что ваш пользовательский «экспортный» код отображает имя столбца в первой строке CSV. Это не имеет никакого отношения к фактическим данным внутри DataTable. На самом деле в вашей таблице есть 0 строк, прежде чем вы вставляете их.

Смежные вопросы