【问题标题】:How can I add the column data type after adding the column headers to my datatable?将列标题添加到数据表后,如何添加列数据类型?
【发布时间】:2011-02-03 14:40:21
【问题描述】:

使用下面的代码(来自我拼凑的控制台应用程序),我将七列添加到我的数据表中。完成后,如何设置每列的数据类型?例如,数据表的第 1 列将具有标题“ItemNum”,我想将其设置为 Int。我在 thet 'net 上查看了一些示例,但大多数示例都显示同时创建列标题和列数据类型,如下所示:

loadDT.Columns.Add("ItemNum", typeof(Int));

此时,在我的程序中,列已经有了名称。我只想做这样的事情(不是实际代码):

loadDT.Column[1].ChangeType(typeof(int));

到目前为止,这是我的代码(为列命名):

// get column headings for datatable by reading first line of csv file.
        StreamReader sr = new StreamReader(@"c:\load_forecast.csv");
        headers = sr.ReadLine().Split(','); 
        foreach (string header in headers)
        {
            loadDT.Columns.Add(header);
        }     

显然,我在这方面还很陌生,但我非常努力地学习。有人可以指出我正确的方向吗?谢谢!

【问题讨论】:

    标签: c# datatable


    【解决方案1】:

    只要该列中还没有存储数据,您就应该能够分配该列的数据类型属性:

    代码:

    loadDT.Column[1].DataType = typeof(int);
    

    【讨论】:

    • 是的,此时程序中,数据表中没有数据。惊人的!非常感谢您的快速回复!我非常感激。 C# 每天都变得越来越有趣!
    【解决方案2】:

    Visual Studio 不允许更改列的类型有一些数据, 您必须使用您的理想类型创建一个新列并将数据从指定列复制到新列

    DataTable DT = new DataTable();
    DT = somsdata ;
        DT.columns.Add("newcol",object); 
        foreach(datarow dr in DT.rows) 
                 dr.itemarray["newcolumn"] = dr.itemarray["oldColumn"];
    

    【讨论】:

      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      相关资源
      最近更新 更多