首页 新闻 会员 周边 捐助

GetInt64 指定的转换无效,请解释下原因。

0
悬赏园豆:5 [已解决问题] 解决于 2013-04-29 20:45

数据库中id字段为自增列(长整形)

程序中获取行集OleDbDataReader dr ,定义变量 long id;

id = dr.GetInt64(0); 报错“指定的转换无效”

id = Convert.ToInt64(dr[0]); 正确,

dr是绝对存在的。请问什么原因。

滴水冰寒的主页 滴水冰寒 | 初学一级 | 园豆:43
提问于:2013-04-16 14:50
< >
分享
最佳答案
0

dr.GetInt32(0)  用这个试试,数据库的int类型对应C#的是int32的。

收获园豆:5
悟行 | 专家六级 |园豆:12559 | 2013-04-16 15:34

我知道用dr.GetInt32(0)可以,就是不知道不能用GetInt64的原因,数据库中的长整形对应的就是long啊

滴水冰寒 | 园豆:43 (初学一级) | 2013-04-16 20:18

@滴水冰寒: 你是long就要用double了。int64也不够了。Convert.ToInt64是强制转换,会把多余的值切掉的。

悟行 | 园豆:12559 (专家六级) | 2013-04-16 20:55
其他回答(1)
0

一楼正解,学习了

不负春光,努力生长 | 园豆:1382 (小虾三级) | 2013-04-18 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册