1

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

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:指定的强制转换无效。

当我在代码末尾投射时。

4

1 回答 1

0

查阅SQL/C# 类型对应表并注意 TSQLfloat对应于System.Double,而不是System.Singlefloat在 C# 中也称为)。

因此,您应该使用x.GetDoubleforNo1No2

于 2013-07-14T09:00:58.457 回答