从SQL数据库解析数据时得到的转换错误

时间:2013-07-14 08:16:02

标签: c# asp.net sql linq

我的数据库设计是这样的:

Column Name: ID ,Data Type: int
Column Name: No1 ,Data Type: float
Column Name: No2 ,Data Type: float

我的数据库条目是这样的:

ID      No1         No2
1    64.25656     24.54465    
2    64.25656     24.54465
3    64.25656     24.54465

我的代码是这样的:

public class JobInfo
{
    public int ID { get; set; }
    public float No1 { get; set; }
    public float No2 { get; set; }
}

public class JobInfoRepository
{           
    using (var reader = command.ExecuteReader())
    {
        return reader.Cast<System.Data.IDataRecord>()
                     .Select(x => new JobInfo()
                     {
                         ID = x.GetInt32(0),
                         No1 = x.GetFloat(1),
                         No2 = x.GetFloat(2),
                     }).ToList();
    }
 }

注意:

我得到了

  

InvalidCastException未被用户代码处理:指定的强制转换无效。

当我在代码结尾处进行投射时。

1 个答案:

答案 0 :(得分:0)

咨询SQL/C# type correspondence chart并注意到TSQL的float对应System.Double,而不是System.Single(C#中的float)。

因此,您应x.GetDouble使用No1No2