SQL数据库与.net float转换的问题(在线等)

socketsyuhai 2009-06-08 08:53:45
using (IDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{

info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];

}
dr.Close();
OnlinePrice 我数据库中定义是float类型的 调试没错误 运行时抛出错误 :指定的转换类型无效

确保列中的最大索引小于列表的大小
确保源类型可以转化为目标类型
...全文
176 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
21L 调试错误错误 1 “System.Convert”并不包含“IsDBNulldr”的定义 是不是还要什么头文件的
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
运行时抛出错误 :指定的转换类型无效

确保列中的最大索引小于列表的大小
确保源类型可以转化为目标类型
数据库中数据类型也改成DOUBLE吗
dengyun_1223 2009-06-08
  • 打赏
  • 举报
回复
这种问题我遇到过。
float和Double都试过,我以前也没有转成功。但我把数据库里的数据类型和程序里的统一了就行了。我后来用提:decimal。。就可以了
ljhcy99 2009-06-08
  • 打赏
  • 举报
回复
抛出什么错误?
你可以 将其转为Double看看。

info.OnlinePrice =System.Convert.IsDBNull(dr["OnlinePrice"])?
Double.MinValue:(Double)dr["OnlinePrice"];
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
19L 还是抛出错误 难道真的把float类型全部都改了 FLOAT类型就不行吗
ljhcy99 2009-06-08
  • 打赏
  • 举报
回复
info.OnlinePrice =System.Convert.IsDBNull(dr["OnlinePrice"])?
float.MinValue:(float)dr["OnlinePrice"];
cpp2017 2009-06-08
  • 打赏
  • 举报
回复
把你的程序变量也定为decmail
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
16L 还是不行 抛出错误
ljhcy99 2009-06-08
  • 打赏
  • 举报
回复
info.OnlinePrice =dr["OnlinePrice"] ==DBNull.Value?
float.MinValue:(float)dr["OnlinePrice"];
ljhcy99 2009-06-08
  • 打赏
  • 举报
回复
修改了
info.OnlinePrice =dr["OnlinePrice"] ==DBNull.Value?
float.MinValue:(float)dr["OnlinePrice"]];
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
10L的 还是抛出错误
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
是多了一个 大意了 可是去掉了也是出错
11L 的方法加个VALUE 调试出错 错误 1 “System.DBNull.Value”是“字段”,但此处被当做“类型”来使用
chen_ya_ping 2009-06-08
  • 打赏
  • 举报
回复
info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];
楼主看看你上面得语句,是不是最后的方括号里面是不是多了一个;
ljhcy99 2009-06-08
  • 打赏
  • 举报
回复
info.OnlinePrice =dr["OnlinePrice"] is DBNull.Value? float.MinValue:(float)dr["OnlinePrice"];];
gicjoe 2009-06-08
  • 打赏
  • 举报
回复
using (IDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{

info.OnlinePrice =dr["OnlinePrice"].ToString()==""? float.MinValue:(float)dr["OnlinePrice"];];

}
dr.Close();
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
不行 啊
错误 1 无法将类型“decimal”隐式转换为“float”。存在一个显式转换(是否缺少强制转换?) F:\奥尔诗\prj\ARS.CN\ARS.CN.DAL\ProductDAL.cs 55 45 ARS.CN.DAL
cpp2017 2009-06-08
  • 打赏
  • 举报
回复
用decimal看看.
keepfire 2009-06-08
  • 打赏
  • 举报
回复
改成
info.OnlinePrice = (decimal)dr["OnlinePrice];
试试
socketsyuhai 2009-06-08
  • 打赏
  • 举报
回复
我刚把DBNULL去掉也不行
info.OnlinePrice = (float)dr["OnlinePrice];
还是出现那个错误提示
看看绿色的两端是否能兼容? 这个不太懂 我刚学的
crazyleo814 2009-06-08
  • 打赏
  • 举报
回复
using (IDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{

info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];

}
dr.Close();


看看绿色的两端是否能兼容?
然后看看float.MinValue取出来什么啊
加载更多回复(4)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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