首页 > 解决方案 > 转换错误(输入字符串的格式不正确)

问题描述

在使用阅读器功能时,我的 .net 核心 api 'System.Number.StringToNumber(ReadOnlySpan 1 str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)\r\n at System.Number.ParseInt32(ReadOnlySpan1 s, NumberStyles style, NumberFormatInfo info)\r\n at 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])
                    });
                }
            }

标签: asp.net-core

解决方案


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])
                });
            }
        }

推荐阅读