C# 处理整数时发生无效的强制转换异常

C# 处理整数时发生无效的强制转换异常,c#,excel,visual-foxpro,C#,Excel,Visual Foxpro,我需要一些帮助来解决我遇到的问题 我目前正在构建一个导出程序,从Excel文档中提取数据,并将其推送到我所知道的FoxPro数据库,旧技术,但我遇到了一个障碍。代码试图从包含一个月租金的列中提取数据 importCommand.Parameters["PRICEASK"].Value = exportReader.IsDBNull(14) ? (object) DBNull.Value : exportReader

我需要一些帮助来解决我遇到的问题

我目前正在构建一个导出程序,从Excel文档中提取数据,并将其推送到我所知道的FoxPro数据库,旧技术,但我遇到了一个障碍。代码试图从包含一个月租金的列中提取数据

 importCommand.Parameters["PRICEASK"].Value = exportReader.IsDBNull(14)
                    ? (object) DBNull.Value
                    : exportReader.GetInt32(14);
但是,我得到了这个错误:

其他信息:指定的强制转换无效


坦率地说,我很难理解为什么会出现这个错误,因为我已经有一段时间没有以类似的能力使用Excel了,但遇到了非常类似的问题。问题来自读取,您告诉它您得到了一个Int,它不喜欢它,可能是因为列/单元格的格式不是整数。应该有一个选项可以将单元格值读入字符串。比如:

importCommand.Parameters["PRICEASK"].Value = exportReader.IsDBNull(14)
                ? (object) DBNull.Value
                : exportReader.GetString(14);

获取字符串并在获得该字符串并将其存储在数据库中后强制转换。试试看。祝你好运。

我应该提到,代码的其余部分工作正常。我正在使用参数化查询来提取和推送数据;第14列不包含int32类型。它调用的列中的第一个值是349,这并不意味着什么,349可能看起来是一个数字,但可能是一个字符串。检查excel文件,单击列并查看它的格式。我检查了excel以确保格式正确,并且所讨论的列的格式为数字。我以前也尝试过在推送时转换为字符串并解析回into,但没有avail@JoshuaCameron-Mackintosh我以前也试过转换成字符串-你能输出那个字符串并粘贴到这里吗?字符串中可以有隐藏/零宽度字符。例如,这个解析很好:Int32.Parse99;,但这不是:Int32.Parse99‍; - 第二个里面有一个。因为我在末尾粘贴了隐藏字符,所以返回true:string.Equals99‍, 99\u200d请尝试,因此不会删除角色,因此它也会出现在注释中。