ошибка приведения (входная строка была не в правильном формате) - PullRequest
0 голосов
/ 23 мая 2019

Я получаю сообщение об ошибке в своем API-интерфейсе ядра .net System.Number.StringToNumber (ReadOnlySpan 1 str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)\r\n at System.Number.ParseInt32(ReadOnlySpan 1 с, стиль NumberStyles, информация NumberFormatInfo) \ r \ n в System.String.System.IConvertible.ToInt3 ' при использовании функции чтения данных чтения SQL. ниже прикрепленный код. Как решить эту проблему?

reader.NextResult();
            while (reader.Read())
            {
                if (reader[0] != DBNull.Value && reader[1] != DBNull.Value)
                {
                    groups.Add(new Group()
                    {
                        GroupId = reader[0] == DBNull.Value ? 0 : Convert.ToInt32(reader[0]),
                        SiteId = reader[1] == DBNull.Value ? 0 : Convert.ToInt32(reader[1]),
                        GroupName = Convert.ToString(reader[2])
                    });
                }
            }

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете использовать Int.TryParse для обработки, если строка не конвертируема.что-то вроде этого:

reader.NextResult();
        while (reader.Read())
        {
            if (reader[0] != DBNull.Value && reader[1] != DBNull.Value)
            {
                groups.Add(new Group()
                {
                    GroupId = int.TryParse(reader[0].ToString(),out var groupId) ? groupId : 0,
                    SiteId = int.TryParse(reader[1].ToString(),out var siteId) ? siteId: 0,
                    GroupName = Convert.ToString(reader[2])
                });
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...