我有一个包含不同类型列的 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)
{
...??
}
}
或者也许有更好或更有效的方法?任何指导将不胜感激。
最佳答案
如果 DataTable
中已有记录,则不能修改列类型。你可以Clone
DataTable,然后在克隆表的每一列中修改列类型。稍后您可以导入行。
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
关于c# - 复制 C# DataTable 并将所有值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970418/