在我正在开发的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"
我不确定我能为您提供的其他信息提供Minimal, Complete, and Verifiable example所以请告诉我您是否需要其他信息。
编辑如下:
堆栈追踪:
RestfulWebAPI.dll!RestfulWebAPI.Controllers.OLE_FoundationsController.GetAll()第86行C#
(参考我已经提供的那条线)
答案 0 :(得分:0)
看起来Visual Studio的堆栈跟踪工作的方式是它引用一条线,但异常也可能就在上面的线上(在某些情况下)。所以在我的情况下,InvalidCastException引用了第86行,但CastException实际上是在第85行发生的。