Добавить столбцы в Dataatable в C #? - PullRequest
4 голосов
/ 11 мая 2010

У меня есть класс читателя csv, который читает файл .csv и его значения .... Я создал datatable из него ... Рассмотрим мой Datatable, содержащий три столбца заголовка Name,EmailId,PhoneNo ... Значения были успешно добавлены .... Теперь я хочу добавить два столбца IsDeleted,CreatedDate к этому datatable ... Я пробовал это, но, похоже, не работает,

    foreach (string strHeader in headers)
    {
        dt.Columns.Add(strHeader);
    }
    string[] data;
    while ((data = reader.GetCSVLine()) != null)
    {
        dt.Rows.Add(data);
    }
    dt.Columns.Add("IsDeleted", typeof(byte));
    dt.Columns.Add(new DataColumn("CreatedDate", typeof(DateTime)));
    foreach (DataRow dr in dt.Rows)
    {
        dr["IsDeleted"] = Convert.ToByte(0);
        dr["CreatedDate"] = Convert.ToDateTime(System.DateTime.Now.ToString());
        dt.Rows.Add(dr);
    }

dt.Rows.Add(dr); показывает ошибку, говорящую This row already belongs to this table. ....

альтернативный текст http://www.imagechicken.com/uploads/1273560975016964800.jpg

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

Почему вы снова добавляете datarow в таблицу?

Удалить строку dt.Rows.Add(dr);

и отредактируйте таблицу данных напрямую, как это dt.Rows[i]["IsDeleted"] = Convert.ToByte(0);, используя цикл for

2 голосов
/ 11 мая 2010

Используйте dt.Rows.Import или dt.ImportRows, я забыл имя

или, судя по вашему коду, зачем вам dt.Rows.Add? разве это не должно быть опущено?

...