Запрос Linq вернуть значение coumn значение null handle - PullRequest
0 голосов
/ 26 сентября 2019

В датируемом списке возврата одного столбца, в этой таблице сценариев возвращаемое нулевое значение, я хочу обработать нулевые значения

DataTable PreviousQuarter = GroupFive.Tables["PreviousQuarter_108_49_100_51"];
LastQuarter.Merge(PreviousQuarter);

var AHCT = (from ah in PreviousQuarter.AsEnumerable()
            where  ah.Field<int>("ParameterID") == 10 
                || ah.Field<int>("ParameterID") == 11
                || ah.Field<int>("ParameterID") == 12 
                || ah.Field<int>("ParameterID") == 13          
            select ah.Field<int>("Tot_Tkts_Closed")).ToList();

if (AHCT == null)
{
    Response = "";
}

Это будет нулевым, я получаю ошибку Указанное приведение недопустимо.как справиться с этой ошибкой.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Я думаю, что @madreflection дал вам ответ в комментариях.

Поскольку вы получаете эту ошибку:

Указанное приведение недействительно

я предполагаю, что у вас есть нулевое значение в столбце Tot_Tkts_Closed.В этом случае приведите вместо nullable int int?.Обновите эту строку:

select ah.Field<int?>("Tot_Tkts_Closed")

Другая возможность - ParameterID - ноль, и в этом случае аналогичное изменение должно разрешить его: ah.Field<int?>("ParameterID").


Вместо проверки, еслисписок пуст, вы можете проверить, пуст ли он.В этом случае используйте свойство Count:

if (AHCT.Count == 0)
{
    Response = "";
}
0 голосов
/ 26 сентября 2019

Вы выбираете значение, которого нет в таблице, и перед тем, как получить результат, вы вводите его в int.Вот почему это выдает ошибку.Лучше сначала выбрать, а затем преобразовать его в int.

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