2010-05-05 207 views
3

运行查询时出现以下错误。sqlclient - 连接超时或命令超时

*

System.Data.SqlClient.SqlException:超时过期。
完成操作或服务器没有响应之前超时时间已过。在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection)

*

这是一个连接超时或命令超时?

TIA

回答

1

看起来像命令超时。如果您有连接超时,您将从堆栈跟踪中看到它从调用SqlConnection.Open中抛出。任何其他超时都将是命令超时。

+0

即使在System.Data.SqlClient。* SqlConnection *中发生错误?误导 – 2017-05-11 15:46:12

1

您需要发布更多的代码为你如何连接,哪些试图执行。命令超时传播到sqlexception超时错误,所以它可能是。

什么是您试图运行的命令或查询? 一旦发布,我们可能会帮助优化它。您还可以尝试为连接和命令对象设置超时时间。增加它,看看它是否有帮助。

+0

@JonH - 如果条件是匹配int数据类型的ID,但在使用日期范围时超时,则查询起作用。所以,连接可以工作,但错误并不能提供什么时间点的线索。 – SoftwareGeek 2010-05-06 03:19:18

0

从SSMS运行时查询需要多长时间?

如果速度很快,那么你的问题可能是一个僵局。

您是否在使用任何交易?你是否与其他应用程序/用户共享数据库?

更多信息将非常有用。

+0

当使用日期时间类型的变量时,查询在SSMS中运行正常,但如果我直接将日期的值替换为varchar,那么需要永远完成。 例如: 1)Where updateddate> @date(正常工作)。 2)更新日期> '01/05/2010'(永久占用)。 什么是需要转换为日期时间? – SoftwareGeek 2010-05-06 03:23:24

+0

@BhehaFry你有没有尝试在queury中使用CAST来将字符串转换为日期时间?即从tbl中选择Col1,Col2,col3,其中myDate = CAST(作为日期时间的@datestring) 另外如果您使用的是SELECT *,dont。 – callisto 2010-05-06 07:14:16