C#中怎么无法将数据库表中的int类型转化成double呢

yilaozhuang 2010-02-26 10:33:42
我建立的数据中有一列数据类型为int,下面是表生产的数据库脚本:
CREATE TABLE [dbo].[RT] (
[num] [int] NOT NULL ,//-------取这一列的数据
[User_ID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[timer] [datetime] NOT NULL ,
[U] [float] NOT NULL ,
[I] [float] NOT NULL ,
[angle] [float] NOT NULL ,
[P] [float] NOT NULL ,
[Q] [float] NOT NULL ,
[cos] [float] NOT NULL
) ON [PRIMARY]
---------------------
DataSet ds_rt = new DataSet();
......
string select_new = "********";
select_new_cmd = new SqlCommand(select_new, sqlcon);
da.SelectCommand = select_new_cmd;
da.Fill(ds_rt);

double x = (double)ds_rt.Tables[0].Rows[N]["num"];//这里提示错误如下:

未处理的“System.InvalidCastException”类型的异常出现在 ConsoleApplication4.exe 中。

其他信息: Specified cast is not valid.
-----------------------
很奇怪这里取数据库中num列(int类型数据),然后(double)怎么会报错呢?
请高手给分析一下。
...全文
353 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong663217890 2010-02-26
  • 打赏
  • 举报
回复
convert.todouble();
yilaozhuang 2010-02-26
  • 打赏
  • 举报
回复
我把数据库的格式num的数据类型改写成foat以后就没问题了:
double x = (double)ds_rt.Tables[0].Rows[N]["num"];//这样就没有转换错误了
yilaozhuang 2010-02-26
  • 打赏
  • 举报
回复
5楼
num里是我写进去的序号整数:1 2 3 4 5...,我就是奇怪为什么不能把int直接(double)成double类型
zetee 2010-02-26
  • 打赏
  • 举报
回复
string select_new = "********"; //?
double x = (double)ds_rt.Tables[0].Rows[N]["num"];//?错误的地方。

应该不是转化的问题。int 怎么都能变成double。

建议你把ds_rt.Tables[0].Rows[N]["num"] 输出来看看什么东西。
xu56180825 2010-02-26
  • 打赏
  • 举报
回复
Convert.ToDouble(ds_rt.Tables[0].Rows[N]["num"]);
javc 2010-02-26
  • 打赏
  • 举报
回复
ds_rt.Tables[0].Rows[N]["num"];

应该是object 类型;
double.Parse();肯定不行

2喽的应该是 double.Parse(ds_rt.Tables[0].Rows[N]["num"].Tostring());
javc 2010-02-26
  • 打赏
  • 举报
回复
double x = (double)ds_rt.Tables[0].Rows[N]["num"];

==>>>

double x = Convert.ToDouble(ds_rt.Tables[0].Rows[N]["num"]);

hhc123 2010-02-26
  • 打赏
  • 举报
回复
double.Parse(....);

110,538

社区成员

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

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

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