DataRow.Field(float Column)抛出无效强制转换异常

本文关键字:无效 异常 转换 Column Field float DataRow | 更新日期: 2023-09-27 18:08:09

IDE Visual Studio 2015
**网"4.5
平台WinForms

我有一个列[UsedSize] FLOAT的数据库表。当查询该表并将值存储在局部变量中时,我得到一个无效的强制转换异常;示例代码:

SqlDataAdapter sda = new SqlDataAdapter(cmdText, conn);
DataTable dt = new DataTable();
sda.Fill(dt);
foreach (DataRow row in dt.Rows)
{
    InfoLibrary ir = new InfoLibrary();
    ir.LibraryID = row.Field<int>("LibraryID");
    ir.Name = row.Field<string>("Name");
    ir.UsedSize = row.Field<float>("UsedSize");
    ir.TotalSize = row.Field<float>("TotalSize");
    ir.TotalFileCount = row.Field<int>("TotalFileCount");                   
    ilList.Add(ir);
}

当步进执行并对错误行执行"Quick Watch"时,我发现,通过将行更改为row.Field("TotalSize"),单元格值类型为零。为什么在表定义中,这是明确的和float呢?

DataRow.Field<T>(float Column)抛出无效强制转换异常

SQL Server float应该映射到。net Double,见这里