您可以跟踪超时过期错误的来源吗?

本文关键字:错误 过期 跟踪 超时 | 更新日期: 2023-09-27 18:10:43

我有两个相同的sql server数据库- staging(版本10.0.4000.0)和测试(10.0.2531.0)。
我有一个Visual Studio 2008 ASP。调用这些数据库的c#项目。该项目使用.xsd从存储过程返回数据。

在这个项目中有超过100个存储过程,一切都很好。但是,我最近创建的一个存储过程出现了问题。存储过程在QA的两个数据库中运行。当我为xsd创建表适配器并将其连接到测试数据库时,它会按预期运行。当我更改到暂存数据库的连接时,我得到这个错误:

超时过期。在完成之前经过的超时时间操作或服务器没有响应。

过程需要两个日期参数。如果我删除日期参数,错误就会消失,我就会得到预期的结果集。如果我输入一个伪造的字符串或整数参数,它也会运行。但是如果我需要日期,就会出现超时错误。请记住,存储过程在测试和暂存中是相同的,并且在QA中运行时都返回结果(在3秒内)。我只是点击tableadapter并选择预览数据选项,所以我知道这不会是我的演示代码中的一些错误。

我不确定提供什么代码或什么可能有助于解决这个问题。请让我知道什么细节可能有帮助,我可以提供。

:下面是从Visual Studio返回的完整消息:

MW.MWDeptTotalSpend。填充,GetData (@StartPYMNT_DT, @EndPYMNT_DT)可以

超时过期。在完成之前经过的超时时间操作或服务器没有响应。

更新2:

我在我的过程中做了一个小的改变,可能会给一些洞察力。

WHERE X.PYMNT_DT BETWEEN '1/1/2014' and '5/1/2014' --@StartPYMNT_DT AND @EndPYMNT_DT

注释的参数定义为@StartPYMNT_DT smalldatetime, @EndPYMNT_DT smalldatetime

过程现在返回数据,但显然我想传入我的日期参数。

您可以跟踪超时过期错误的来源吗?

我找到了一个"解决方案"。出于某种原因,我必须将datetime参数强制转换为sql:

中的datetime。
X.PYMNT_DT BETWEEN CAST(@StartPYMNT_DT as smalldatetime) AND CAST(@EndPYMNT_DT  as smalldatetime)

我仍然想知道如何跟踪这些错误的来源,显然这个解决方案是一个hack。如果有人能提供一个更好的答案,我愿意接受。