C # не может привести вычисляемый столбец из SQL Server SELECT - PullRequest
0 голосов
/ 25 мая 2018

Не получается найти способ приведения вычисляемого столбца из оператора SQL Server 2012 SELECT.Я вычисляю простое значение, называемое Доходность, которое в основном выражается в процентах.

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 голосов
/ 25 мая 2018

Numeric в TSQL эквивалентно Decimal в .NET (см. в этой статье для сопоставления типов данных из TSQL в .NET).

Попробуйте привести к decimal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...