vb.net – 超时已过期.操作完成之前经过的超时时间或服务器没有
我不确定这是VB.NET错误还是SQL Server.但我得到以下错误与以下堆栈跟踪:
这是在Microsoft .NET Framework版本:2.0.50727.3620; ASP.NET版本:2.0.50727.3618和SQL Server 2008. 1: PrintMessageGrid.DataSource = GlobalFunctions.GlobalF.GetComplaintTrendingList6(FirstMonthDate,LastMonthDate,TheLevel) 即使我可以在查询分析器中运行此存储过程,它将在8秒后返回.可能是什么原因和修复? 这里是我声明这个函数的更多细节: Public Shared Function GetComplaintTrendingList6(ByVal FirstMonth As DateTime,ByVal LastMonth As DateTime,ByVal rowLevel As Integer) As DataSet Dim DSPageData As New System.Data.DataSet Dim param(2) As SqlClient.SqlParameter param(0) = New SqlParameter("@FirstMonthDate",SqlDbType.DateTime) param(0).Value = FirstMonth param(1) = New SqlParameter("@LastMonthDate",SqlDbType.DateTime) param(1).Value = LastMonth param(2) = New SqlParameter("@TheLevel",SqlDbType.Int) param(2).Value = rowLevel ''# A Using block will ensure the .Dispose() method is called for these variables,even if an exception is thrown ''# This is IMPORTANT - not disposing your connections properly can result in an unrespsonsive database Using conn As New SQLConnection(ConfigurationSettings.AppSettings("AMDMetricsDevConnectionString")),_ cmd As New SQLCommand("ComplaintTrendingList6",conn),_ da As New SQLDataAdapter(cmd) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddRange(param) da.Fill(DSPageData) End Using Return DSPageData End Function 奇怪的是,如果我在存储过程中进行了这么小的改动,它会通过,但不会给我我想要的数据: SELECT E.PRODUCT_GROUP,a.QXP_SHORT_DESC,COUNT(DISTINCT A.QXP_EXCEPTION_NO),A.QXP_REPORT_DATE,DATEADD(M,DATEDIFF(M,A.QXP_REPORT_DATE),0) AS STARTDATE FROM ALL_COMPLAINTS A LEFT OUTER JOIN SMARTSOLVE.V_QXP_ISSUE_REF D ON A.QXP_ID = D.IRF_QXP_ID INNER JOIN CT_ProductFailures b ON b.old_modes = a.qxp_short_desc LEFT OUTER JOIN [MANUAL].PRODUCTS E ON A.EPA_PRD_CODE = E.LIST_NUMBER LEFT JOIN SMARTSOLVE.V_CXP_CUSTOMER_PXP C ON A.QXP_ID = C.QXP_ID INNER JOIN @SelectedLevels F ON A.[LEVEL] = F.LevelId WHERE --[LEVEL] > 0 AND (A.QXP_SHORT_DESC <> 'Design Control') and A.QXP_REPORT_DATE >= @OneYearAgo AND A.QXP_REPORT_DATE <= @LastMonthDate AND (C.QXP_EXCEPTION_TYPE <> 'Non-Diagnostic' OR C.QXP_EXCEPTION_TYPE IS NULL) GROUP BY E.PRODUCT_GROUP,A.QXP_SHORT_DESC 导致错误的存储过程: INSERT #PVAL_NUM SELECT E.PRODUCT_GROUP,b.new_modes 'QXP_SHORT_DESC',0) AS STARTDATE FROM ALL_COMPLAINTS A LEFT OUTER JOIN SMARTSOLVE.V_QXP_ISSUE_REF D ON A.QXP_ID = D.IRF_QXP_ID INNER JOIN CT_ProductFailures b ON b.old_modes = a.qxp_short_desc LEFT OUTER JOIN [MANUAL].PRODUCTS E ON A.EPA_PRD_CODE = E.LIST_NUMBER LEFT JOIN SMARTSOLVE.V_CXP_CUSTOMER_PXP C ON A.QXP_ID = C.QXP_ID INNER JOIN @SelectedLevels F ON A.[LEVEL] = F.LevelId WHERE --[LEVEL] > 0 AND (A.QXP_SHORT_DESC <> 'Design Control') and A.QXP_REPORT_DATE >= @OneYearAgo AND A.QXP_REPORT_DATE <= @LastMonthDate AND (C.QXP_EXCEPTION_TYPE <> 'Non-Diagnostic' OR C.QXP_EXCEPTION_TYPE IS NULL) GROUP BY E.PRODUCT_GROUP,b.new_modes 解决方法
您使用查询分析器(或SSMS,现在)以及您的应用程序获得的内容可能是非常不同的,主要是由于参数嗅探.
我建议阅读Erland Sommarskog的this article了解详情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |