如何在向数据表中添加列标题后添加列数据类型?

6
使用以下代码(从我拼凑在一起的控制台应用程序中),我向我的数据表添加了七列。完成后,如何为每个列设置数据类型?例如,数据表的第一列将具有标题“ItemNum”,我希望将其设置为Int类型。我查看了一些网上的示例,但大多数都显示同时创建列标题和列数据类型,例如:
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);
        }     

显然,我对这个还很陌生,但是我很努力地学习。有人能指点我一下吗?谢谢!

2个回答

3
只要该列中尚未存储数据,您就可以分配该列的数据类型属性: 代码:
loadDT.Column[1].DataType = typeof(int);

是的,在程序的这个阶段,数据表中没有任何数据。太棒了!非常感谢您的快速回复!我非常感激。C#每天都变得更有趣! - Kevin

1

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"];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接