Экспорт столбца .Net DataTable - PullRequest
       20

Экспорт столбца .Net DataTable

0 голосов
/ 12 февраля 2010

Я хочу получить столбец и все его данные строки из объекта DataTable, затем создать новый столбец в другой таблице данных и добавить его вместе с новым столбцом и его строками. Проблема, с которой я постоянно сталкиваюсь, заключается в том, что будут появляться данные о строках, равно как и имена столбцов, но все строки добавляются в один и тот же столбец. Любая помощь очень ценится.

    void GetColumns()
    {
        // add the columns to the new datatable
        foreach (int i in mapValues)
        {
            SplitData.Columns.Add(i.ToString());
        }
        // map values contains the index numbers of my target columns
        foreach (int x in mapValues)
        {

            foreach (DataRow row in OrigData.Rows)
            {
                SplitData.Rows.Add(row[mapValues[LocalIndex]]);
            }

            LocalIndex++;
        }
    }

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

Используемая вами перегрузка DataRow.Add является параметром params, поэтому вы просто помещаете данные столбца orig в первый столбец новой таблицы DataTable.

Вы, вероятно, хотите что-то вроде:

DataRow newRow = SplitData.NewRow(); // gets a new blank row with the right schema
newRow[x.ToString()] = row[mapValues[LocalIndex]; // sets the column (that you created before) to the orig data
SplitData.Rows.Add(newRow);

как ядро ​​вашего второго цикла for. Вы также можете сделать это за один цикл.

0 голосов
/ 12 февраля 2010

Хотя принятый ответ был совершенно верным, и я кое-что узнал из него, оказалось, что метод DataTable.ImportRow - это именно то, что я хочу для своих нужд, так что просто для дальнейшего использования для тех, кто может наткнуться на это.

...