C#无法从SQL Server SELECT

时间:2018-05-25 19:12:04

标签: c# casting

我似乎无法找到从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"]
}

有人可以给我一个提示吗?

1 个答案:

答案 0 :(得分:3)

TSQL中的

Numeric等同于.NET中的Decimal(有关从TSQL到.NET的数据类型映射,请参阅this article。)

尝试转换为decimal