我似乎无法找到从SQL Server 2012SELECT
语句转换计算列的方法。我正在计算一个名为 Yield 的简单值,它基本上是一个百分比。
SELECT
TotalUnique,
TotalFail,
ISNULL(((TotalUnique - NullIf(TotalFail, 0)) / CONVERT(NUMERIC(38, 2), TotalUnique) * 100), 100) AS Yield
FROM
Products
对于Yield
列,我将如何使用阅读器检索此列?我不断收到错误消息
异常详细信息:System.InvalidCastException:指定的强制转换无效。
在线上:
DBYield = (float)reader["Yield"]
我整天都在寻找能为我提供线索的东西,但没有运气。
int DBTotalUnique = 0;
int DBTotalFailed = 0;
float DBYield = 00.0f;
while (reader.Read())
{
DBTotalUnique = (int)reader["TotalUnique"];
DBTotalFailed = (int)reader["TotalFail"];
DBYield = (float)reader["Yield"]
}
有人可以给我一个提示吗?
TSQL 中的Numeric
等效于 .NET 中的Decimal
(有关从 TSQL 到 .NET 的数据类型映射,请参阅本文(。
尝试投射到decimal
。