解决DataTable中的DataColumn类型默认为int类型时, 导致不能修改其列值为其他类型的解决办法
2015-12-10 13:35
429 查看
问题起因:
扔给数据库一条select * from [表名] , 得到一个DataTable, 发现有一列status状态的DataColumn的类型是int,然后我想换成字典表里的文字描述,然后就vs就抛出异常,说int类型的列不能赋值string值; 然后我立马去修改列的类型为string类型;vs又抛出异常说已存在数据的列无法修改其类型.
于是苦思3分,得到如下转换代码,封装如下:
欢迎分享!
扔给数据库一条select * from [表名] , 得到一个DataTable, 发现有一列status状态的DataColumn的类型是int,然后我想换成字典表里的文字描述,然后就vs就抛出异常,说int类型的列不能赋值string值; 然后我立马去修改列的类型为string类型;vs又抛出异常说已存在数据的列无法修改其类型.
于是苦思3分,得到如下转换代码,封装如下:
private static DataTable GetNewDataTable(DataTable dt) { var dt2 = new DataTable(); foreach (DataColumn col in dt.Columns) { dt2.Columns.Add(new DataColumn(col.ColumnName, typeof(string))); } foreach (DataRow row in dt.Rows) { DataRow dr = dt2.NewRow(); foreach (DataColumn col in dt2.Columns) { dr[col.ColumnName] = row[col.ColumnName]; } dt2.Rows.Add(dr); } return dt2; }
欢迎分享!
相关文章推荐
- 利用nginx集群式部署服务器中,数据同步问题
- 老李分享:什么是好战略
- HIToj Self Numbers 1087 (输出规定的数)
- java获取时间并加上2个小时,格式化输出
- 浅析静态库链接原理
- Shell 编程快速入门
- a++和++a
- leetcode -- Find Minimum in Rotated Sorted Array -- 重点
- eclipse中启动服务器正常,地址栏输入访问地址出现500,org.apache.commons.lang.exception.NestableRuntimeException
- php数组函数-array_map()
- oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)
- Android中获取应用程序(包)的信息-----PackageManager的使用
- Remove unnecessary magnetic soft iron calibration parameters on msm8976/8956
- 移动端自动化测试开课了
- Arcgis sde 10.1您不能创建在安装后的空间库,提示User has privileges required to create database objects.
- MySQL中tinytext、text、mediumtext和longtext详解
- C++中的静态绑定和动态绑定
- 利用Java迭代器删除list中元素
- Android页面布局控件-Android学习笔记
- 设计模式之组合模式