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
呢?
SQL Server float应该映射到。net Double,见这里