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

datatable 类的数据类型问题
在表中,有几个列是 number(16,3)类型,用sql语句查询后,放到datatable中,有两个列的类型就变成int64,其他列类型就double,这是为什么呢?怎么让所有列都是double类型呢

代码如下

 string sql = " select c_spmc as 商品名称,n_spdj as 上货价,n_xsdj as 零售价,n_bysl as 库存数量,n_byje as 库存金额,n_sysl as 接班数量,n_syje as 接班金额, n_rksl as 上货数量,n_rkje as 上货金额,n_drsl as 补货数量,n_drje as 补货金额,n_cksl as 销售数量,n_ckje as 成本金额,n_cksl* n_xsdj as 零售金额,n_dcsl as 交班数量,n_dcje as 交班金额,c_splb as 商品类别,c_spfl as 商品分类,c_sptm as 商品条码,c_spgg as 商品规格,c_spdw as 商品单位,c_spbh as 商品编号 from cy_pda_spmxz  order by c_spbh";
    
            DataTable dt =dbconnect.dbDataReader(sql);
           MessageBox.Show( dt.Rows[0]["交班金额"].GetType().ToString()); //这个就是int64类型
           MessageBox.Show(dt.Rows[0]["库存金额"].GetType().ToString());//这个就是double类型
n_dcje n_byje在数据库中都是number(16,3)
数据库是sqlite wince下,
请高手指点。。
数据库 DATATABLE

------解决方案--------------------
貌似很神奇 数据库的数据类型不是程序中的数据类型
甚至不同的数据库版本的数据类型都不同
你只要保证你数据库内的数据类型和程序内的数据类型能够兼容就可以了