我似乎无法找到从SQL Server 2012 SELECT
语句中转换计算列的方法。我正在计算一个名为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"]
}
有人可以给我一个提示吗?
答案 0 :(得分:3)
Numeric
等同于.NET中的Decimal
(有关从TSQL到.NET的数据类型映射,请参阅this article。)
尝试转换为decimal
。