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

时间:2012-10-02 17:20:02

标签: c# asp.net sql c#-4.0

我正在尝试执行此查询:

SELECT * from vwLstDtaLines d1,vwLStDtafiles d2 where d1.DtaLinePaymentDate='1/1/2000'or d1.DtaLinePaymentDate='1/1/2012'  or d1.DtaLineUserCre='abc' or d1.DtaLineUserMatch='abc' or d2.DtaFileName='Sent'



Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

一次又一次地出现此错误

2 个答案:

答案 0 :(得分:2)

好吧,只看你的SQL,我觉得你创建的结果集比你想要的更大。

SELECT * 
from vwLstDtaLines d1,vwLStDtafiles d2 
where d1.DtaLinePaymentDate='1/1/2000' or 
d1.DtaLinePaymentDate='1/1/2012'  or 
d1.DtaLineUserCre='abc' or 
d1.DtaLineUserMatch='abc' or 
d2.DtaFileName='Sent'  

此SQL语句在两个视图之间没有明确的JOIN。因此,您得到的结果集可能类似于d1r * d2r,其中d1r是d1中的行数,d2r是d2中的行数。

我会开始寻找那里。在SQL Server中运行以下查询以查找:

SELECT COUNT(*)
from vwLstDtaLines d1,vwLStDtafiles d2 
where d1.DtaLinePaymentDate='1/1/2000' or 
d1.DtaLinePaymentDate='1/1/2012'  or 
d1.DtaLineUserCre='abc' or 
d1.DtaLineUserMatch='abc' or 
d2.DtaFileName='Sent'  

如果行数是天文数字,则会出现连接问题。

答案 1 :(得分:1)

您可以在Connect Timeout

中增加string connection

Nota:默认值为15秒

调整样本

<add name="ConnectionString" connectionString="Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=;Connect Timeout=200" providerName="System.Data.SqlClient"/>
</connectionStrings>

链接:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx