@PAPA221

Почему он жалуется на то что не может работать с null именно на строчке if (reader.GetString(14) != null)?

Почему он жалуется на то что не может работать с null именно на строчке if (reader.GetString(14) != null), но на такие же строчки выше он не ругается. И если убрать конкретно данную строчку все будет нормально

ОШБИКА:
System.Data.SqlTypes.SqlNullValueException: "Неопределенные данные. Этот метод или свойство не может вызываться для значений равных Null."

spoiler

using (SqlConnection con =подключение к бд))
            {
                con.Open();
                SqlCommand comm = new SqlCommand
                (
                    "Use sysCases SELECT  cases.id, cases.titlenumber, cases.date, cases.list, cases.description, cases.other, cases.status, cases.junge_id, users.id, users.fathername, plaintiff.name, plaintiff.adress, plaintiff.birhday, defendant.name, defendant.adress, defendant.birhday FROM cases INNER JOIN users ON users.id = cases.junge_id INNER JOIN plaintiff ON plaintiff.cases_id = cases.id INNER JOIN defendant ON defendant.cases_id = cases.id"
                     , con
                );

                SqlDataReader reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    string des = " ", lis = " ", oth = " ", ad = " ";

                    string painadd = " ";


                    if (reader.GetString(4) != null)
                        des = reader.GetString(4);
                   
                    if (reader.GetString(3) != null)
                        lis = reader.GetString(3);
                    
                    if (reader.GetString(5) != null)
                        oth = reader.GetString(5);

                    

                    if (reader.GetString(11) != null)
                        painadd = reader.GetString(11);

                    if (reader.GetString(14) != null)
                        ad = reader.GetString(14);


                    casesList.Add(new ClassCasesAll
                    {

                        id_cases = reader.GetInt32(0),
                        titlenumber = reader.GetInt32(1),
                        date = reader.GetDateTime(2),
                        list = lis,
                        description = des,
                        other = oth,
                        status = reader.GetBoolean(6),
                        junge_id = reader.GetInt32(7),
                        id_users = reader.GetInt32(8),
                        fathername = reader.GetString(9),
                        name_plaintiff = reader.GetString(10),
                        adress_plaintiff = painadd,
                        birthday_plaintiff = reader.GetDateTime(12),
                        name_defendant = reader.GetString(13),
                        adress_defendant = ad,
                        birthday_defendant = reader.GetDateTime(15),




                    }); ;
                }
                reader.Close();

            }
  • Вопрос задан
  • 212 просмотров
Решения вопроса 2
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
На null надо проверять через IsDBNull - https://learn.microsoft.com/ru-RU/dotnet/api/syste...

Переделай примерно так:
if (!reader.IsDBNull(14))
     ad = reader.GetString(14);
Ответ написан
ZhenyaMak
@ZhenyaMak
Писать качественный софт? Пфф, это не для меня.
Проверь значение по индексу 14
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы