将String转换为String时出现InvalidCastException

本文关键字:String InvalidCastException 转换 | 更新日期: 2023-09-27 18:08:30

在我正在工作的REST Api中处理控制器类时,我得到了一个无法解释的错误。

API接受一个数据组件,并从视图中获取所有数据。视图中的一列是EngineeringName(varchar(250), null)

当我在数据集上迭代构建JSONObject时,我的调试器显示了这个错误:

类型为'System '的异常。InvalidCastException'发生在RestfulWebAPI.dll,但未在用户代码中处理

这是它失败的行:

String engineerName = row["EngineerName"].ToString();

当错误发生时,调试器的即时窗口显示给我这个,我检查值是什么:

>>> ?row["EngineerName"] 
   >>> "j bloggs"

 >>> ?row["EngineerName"].ToString() 
    >>> "j bloggs"

我不确定我可以为你们提供什么其他信息来提供一个最小的,完整的,可验证的例子,所以如果你还需要什么,请告诉我。

编辑如下:

堆栈跟踪:

RestfulWebAPI.Controllers.OLE_FoundationsController.GetAll() Line 86 c#

(指我已经提供的行)

将String转换为String时出现InvalidCastException

看起来Visual Studio的堆栈跟踪以一种指向一行的方式工作,但在某些情况下,异常也可能在正上方的行上。因此,在我的例子中,InvalidCastException引用的是第86行,但CastException实际上发生在第85行。