【问题标题】:Add columns to a datatable in c#?在 C# 中将列添加到数据表?
【发布时间】:2010-05-11 05:54:57
【问题描述】:

我有一个读取 .csv 文件及其值的 csv 阅读器类......我已经创建了 datatable...考虑我的 Datatable 包含三个标题列 Name,EmailId,PhoneNo... . 值已成功添加....现在我想在此datatable 中添加两列IsDeleted,CreatedDate...我已经尝试过,但它似乎不起作用,

    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. ....

alt text http://www.imagechicken.com/uploads/1273560975016964800.jpg

【问题讨论】:

    标签: c# datatable add dynamic


    【解决方案1】:

    为什么要再次将数据行添加到表中?

    删除dt.Rows.Add(dr);这一行

    并像这样dt.Rows[i]["IsDeleted"] = Convert.ToByte(0); 使用 for 循环直接编辑数据表

    【讨论】:

      【解决方案2】:

      使用 dt.Rows.Import,或者 dt.ImportRows,我忘记名字了

      或者从你的代码来看,为什么你需要 dt.Rows.Add?不应该省略吗?

      【讨论】:

      • @Micheal 我应该在哪里导入?
      • @Pandiya:乍一看,我以为您正在从一个数据表复制到另一个数据表。无论如何,请检查我编辑的答案
      猜你喜欢
      • 1970-01-01
      • 2011-05-31
      • 2015-02-13
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2019-06-23
      相关资源
      最近更新 更多