当前位置:  开发笔记 > 编程语言 > 正文

复制C#DataTable并将所有值转换为字符串

如何解决《复制C#DataTable并将所有值转换为字符串》经验,为你挑选了1个好方法。

我有一个DataTable不同类型的列.我想要的是DataTable具有相同列名但所有值都是字符串的.也就是说,如果这是第一个:

Name   Age
-----------
John   31
Alice  27
Marge  45

其中Name是一String列,Age是一Int32列,我想要的是:

Name   Age
-----------
John   31
Alice  27
Marge  45

其中,姓名和年龄是两个字符串列.输出表必须包含与输入表相同的值,但每个值都必须转换为字符串.任何人都可以提供有关如何做到这一点的任何见解吗?我想过可能会做类似的事情

foreach (DataColumn col in inputTable.Columns)
{
    outputTable.Columns.Add(col.ColumnName, typeof(string));

    foreach (DataRow row in inputTable.Rows)
    {
        ...??
    }
}

或者可能有更好或更有效的方法?任何指导将不胜感激.



1> Habib..:

DataTable如果已有记录,则无法修改列类型.您可以使用CloneDataTable,然后在克隆表的每列中修改列类型.稍后您可以导入行.

DataTable dtClone = dt.Clone(); //just copy structure, no data
for (int i = 0; i < dtClone.Columns.Count; i++)
{
    if (dtClone.Columns[i].DataType != typeof(string))
        dtClone.Columns[i].DataType = typeof(string);
}

foreach (DataRow dr in dt.Rows)
{
    dtClone.ImportRow(dr);
}

dtClone 将包含字符串中的每一列和原始表中的所有数据 dt

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有