asp.net-core - 转换错误(输入字符串的格式不正确)
问题描述
在使用阅读器功能时,我的 .net 核心 api 'System.Number.StringToNumber(ReadOnlySpan 1 str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)\r\n at System.Number.ParseInt32(ReadOnlySpan
1 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])
});
}
}
解决方案
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])
});
}
}
推荐阅读
- python - 在Python中将二叉树插入矩阵
- c# - 序列化另一个 json 中的 Json 字符串中的问题
- c# - 使用 C# 和 cosmos 客户端从 cosmos db 中删除文档
- java - 创建服务时出现 android.view.WindowManager$BadTokenException 错误
- android - 有没有办法恢复具有密钥库文件、密钥库密码和以前签名的 apk 的别名密钥密码?
- c# - Web应用程序项目之间共享Sqlite
- python - 无法创建菜单 AttributeError:“框架”对象没有属性“tk_menuBar”
- python-3.x - TF 2.0 错误:使用梯度带训练期间变量不存在梯度
- kotlin - kotlin 继承转换导致未使用的属性
- python - 选择文件数而不是百分比