повторяющиеся имена столбцов с данными - PullRequest
1 голос
/ 25 января 2012

У меня есть дата с именами столбцов I0, I1, I2 и т. Д. Однако это не настоящие имена столбцов. Я храню имена столбцов в другой таблице.

Затем у меня есть цикл для отображения фактических имен столбцов следующим образом:

for (int i = 0; i < dt_key.Rows.Count; i++)
{
    dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString();
}

Я получаю следующие ошибки:

Столбец с именем «Давление» уже принадлежит этой таблице данных.

и

Столбец с именем «Размер» уже принадлежит этой таблице данных.

В конечном итоге я пытаюсь записать это в XML-файл:

dt_data.WriteXml(filename);

Это работает, но я получаю имена столбцов I0..I22

Есть похожие вопросы, но они пытаются создать таблицы данных с повторяющимися именами столбцов. Я просто пытаюсь распечатать таблицу с повторяющимися именами столбцов. Какой хороший способ сделать это?

Edit:

Я могу сделать следующее:

for (int i = 0; i < dt_key.Rows.Count; i++)
{
    dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString() + " " + dt_data.Columns[i].ColumnName;
}

Ответы [ 3 ]

5 голосов
/ 03 сентября 2014
for (int i = 0; i < dt_key.Rows.Count; i++)
    {
       if(dt_data.Columns.Contains(dt_key.Rows[i][0].ToString()))             
         dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString() + "  " ;
      else
         dt_data.Columns[i].ColumnName = dt_key.Rows[i][0].ToString();
    }

Однако добавление одного и того же имени столбца является плохой практикой, однако вы можете добиться этого, добавив пробел в конце имени столбца, чтобы сделать его уникальным.

5 голосов
/ 25 января 2012

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

Вы можете вручную создать свой файл, используя объект XmlWriter. Этот метод создает XmlWriter для записи в файл.

0 голосов
/ 11 сентября 2016

Возможно, вы можете использовать свойство DataColumn.Caption для хранения отображаемого имени столбца:

https://msdn.microsoft.com/en-us/library/system.data.datacolumn.caption(v=vs.110).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...