2010-05-05 206 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