C# 堆栈跟踪如何找出导致异常的方法

C# 堆栈跟踪如何找出导致异常的方法,c#,stack-trace,C#,Stack Trace,我有一个基本错误: 将datetime2数据类型转换为datetime数据类型 导致值超出范围。\r\n语句已被删除 终止 我在很多地方都有这种情况,但当堆栈跟踪抛出异常时,我不知道如何找到导致问题的方法或代码部分 问题是它很难调试,因为当我添加1个元素时,它工作正常,当我循环时,我猜它不知何故丢失了datetime的分配 代码太长了,我只需要一个提示,当它抛出异常时,如何读取堆栈跟踪 堆栈跟踪可能不会显示您想要的所有内容,但是,请尝试查看右侧的选项卡:可能是select语句(可能是最后一个)导

我有一个基本错误:

将datetime2数据类型转换为datetime数据类型 导致值超出范围。\r\n语句已被删除 终止

我在很多地方都有这种情况,但当堆栈跟踪抛出异常时,我不知道如何找到导致问题的方法或代码部分

问题是它很难调试,因为当我添加1个元素时,它工作正常,当我循环时,我猜它不知何故丢失了datetime的分配

代码太长了,我只需要一个提示,当它抛出异常时,如何读取堆栈跟踪


堆栈跟踪可能不会显示您想要的所有内容,但是,请尝试查看右侧的选项卡:可能是select语句(可能是最后一个)导致了错误,您可能需要检查它们


此外,我建议对SQL数据库中的表使用适当的类型,这样的错误表示体系结构中存在错误,您可能需要重新考虑(或至少检查每一行的类型)数据库类型以获取可能携带的数据。

查看callstack窗口。我从您的屏幕截图中提取了以下内容:

这不是抛出异常的地方,而是可以处理异常的地方。您的代码调用了其他人的方法,您可能传递了一个无效的参数

异常是在外部代码中抛出的,这意味着不是您的代码。但是,除非您认为这是其他人(如Microsoft)代码中的错误,并且希望向Microsoft提交错误报告,否则您不需要该信息


如果您确实想知道问题发生在哪里,请右键单击调用堆栈并启用
[x]显示外部代码。请注意,您可能没有源代码,甚至永远也得不到它。

添加一些示例堆栈跟踪将非常有用!此错误消息不是来自.NET组件。如果你用谷歌搜索它,你会发现它来自SQL Server。因此,看看您执行的查询。您是否使用Linq到实体?是的,我使用Linq到实体。我将检查查询。我将检查sql查询和报告。是。我已经检查了侧面的最后一个查询,正如您所看到的,它在“辛迪加”插入处停止,然后我检查了辛迪加实现处的代码,意识到我忘记在辛迪加代码处添加一些日期时间分配,它无法插入到数据库中,抛出了提到的错误。谢谢大家。