我有一个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