日期:2014-05-17  浏览次数:21074 次

DataTable类型转换问题.
我有一个表.读取为DataTable了.列是有固定类型了.如string或double.
但是我取值的时候 
dt.Rows[i][j]
只能先取object类型再转换成string或double吗?
这样不会很慢么.而且还容易类型出错.
或者有其他非DataTable的类型可以方便的存取表吗?

------解决方案--------------------
这种拆箱是无法避免的。

就这样做吧。
------解决方案--------------------
Mark下,如果有,也看看,看看怎么避免拆箱装箱!
------解决方案--------------------
拆箱将引用类型转换为值类型,必须要强制转换。但是装箱和拆箱都是有损性能的。
由于一般都是由dataset来存储从数据库得到的结果集,由object转换到string或double无法避免。
至于楼主所说的错误,只要在遍历datatable时if(dt.Rows[i][j]!=null)应该可以避免。
------解决方案--------------------
如果一个方法要返回多种数据类型,就必须定义成多种类型的共同基类,在这里就是 object 了,这种用法的必须的,楼主不要纠结了,转换方法有许多种,这种不错:
Convert.ToXXXX(obj)