问题起因:
扔给数据库一条select * from [表名] , 得到一个DataTable, 发现有一列status状态的DataColumn的类型是int,然后我想换成字典表里的文字描述,然后就vs就抛出异常,说int类型的列不能赋值string值; 然后我立马去修改列的类型为string类型;vs又抛出异常说已存在数据的列无法修改其类型.
于是苦思3分,得到如下转换代码,封装如下:
1 private static DataTable GetNewDataTable(DataTable dt)
2 {
3 var dt2 =
new DataTable();
4 foreach (DataColumn col
in dt.Columns)
5 {
6 dt2.Columns.Add(
new DataColumn(col.ColumnName,
typeof(
string)));
7 }
8 foreach (DataRow row
in dt.Rows)
9 {
10 DataRow dr =
dt2.NewRow();
11 foreach (DataColumn col
in dt2.Columns)
12 {
13 dr[col.ColumnName] =
row[col.ColumnName];
14 }
15 dt2.Rows.Add(dr);
16 }
17 return dt2;
18 }
欢迎分享!
转载于:https://www.cnblogs.com/wyfblog/p/5035777.html