using (IDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];
}
dr.Close();
OnlinePrice 我数据库中定义是float类型的 调试没错误 运行时抛出错误 :指定的转换类型无效 确保列中的最大索引小于列表的大小
确保源类型可以转化为目标类型
{
if (dr.Read())
{
info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];
}
dr.Close();
OnlinePrice 我数据库中定义是float类型的 调试没错误 运行时抛出错误 :指定的转换类型无效 确保列中的最大索引小于列表的大小
确保源类型可以转化为目标类型
{
if (dr.Read())
{
info.OnlinePrice =dr["OnlinePrice"] is DBNull? float.MinValue:(float)dr["OnlinePrice"];];
}
dr.Close();
看看绿色的两端是否能兼容?
然后看看float.MinValue取出来什么啊
info.OnlinePrice = (float)dr["OnlinePrice];
还是出现那个错误提示
看看绿色的两端是否能兼容? 这个不太懂 我刚学的
info.OnlinePrice = (decimal)dr["OnlinePrice];
试试
错误 1 无法将类型“decimal”隐式转换为“float”。存在一个显式转换(是否缺少强制转换?) F:\奥尔诗\prj\ARS.CN\ARS.CN.DAL\ProductDAL.cs 55 45 ARS.CN.DAL
{
if (dr.Read())
{
info.OnlinePrice =dr["OnlinePrice"].ToString()==""? float.MinValue:(float)dr["OnlinePrice"];];
}
dr.Close();
楼主看看你上面得语句,是不是最后的方括号里面是不是多了一个;
11L 的方法加个VALUE 调试出错 错误 1 “System.DBNull.Value”是“字段”,但此处被当做“类型”来使用
info.OnlinePrice =dr["OnlinePrice"] ==DBNull.Value?
float.MinValue:(float)dr["OnlinePrice"]];
float.MinValue:(float)dr["OnlinePrice"];
float.MinValue:(float)dr["OnlinePrice"];
你可以 将其转为Double看看。info.OnlinePrice =System.Convert.IsDBNull(dr["OnlinePrice"])?
Double.MinValue:(Double)dr["OnlinePrice"];
float和Double都试过,我以前也没有转成功。但我把数据库里的数据类型和程序里的统一了就行了。我后来用提:decimal。。就可以了
确保源类型可以转化为目标类型
数据库中数据类型也改成DOUBLE吗