在sql中 bigint 数据类型的转换出现了问题,无法读取!

hproof 2003-05-15 09:02:58
在表中有一个字段是 bigint 类型的,我用的是 C# ,按照约定,它是64位长的整形,相当与C#中的long 或 System.Int64

这里是三种转换过程,但都失败!

data = (System.Int64) dr["data"];
data = (long) dr["data"];
data = Convert.ToInt64(dr["data"]);
...全文
329 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hproof 2003-05-15
  • 打赏
  • 举报
回复
sorry,,,,,

发现错误不是数据库,转换,,,而是我自己。

在我的“解决方案”中,有2个工程:data负责数据库连接,test暂时用于测试;
以前,data输出在自己目录,test也引用到该目录。但后来我改变了data的输入目录,又没有更改test的引用位置。

因此,运行时,test总是调用“老”版本的data,从而发生了错误(当我发现即使修改data源代码,也无法改变执行效果时)。

现在问题已经解决了,,,希望大家别犯我这个错误。。。
Knight94 2003-05-15
  • 打赏
  • 举报
回复
应该用long就行了,看你的变量dr,是否用的是SqlDataReader?
那试试这个
data=dr.GetInt64(index);
or
data=(long)dr.GetValue(index);
hproof 2003-05-15
  • 打赏
  • 举报
回复
发现其它一些操作也导致失败:

foreach(object o in dr.ItemArray ){}
bool isnull = (dr[1] == null)?true:false;
String str = dr.ItemArray [1].ToString ();
System.Type t = dr[1].GetType ();

当试图执行以上操作时,就发生失败,,,,惨也。。
hproof 2003-05-15
  • 打赏
  • 举报
回复
另外,在调试时查看了 dr(DataRow) 中的内容,发现该字段的类型确实为 System.Int64,然而转换却不成功
(其它字段转换正确)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧