我用C#.NET編寫的應用程序有一個非常奇怪的SQL連接超時情況。C#SQL連接超時
SqlCommand.ExecuteNonQuery()
正被用於在SQL Server中依次執行幾個腳本。每個腳本都包含一個命令來創建一個表(根本不需要數據更新/插入/刪除操作)。出於某種原因,在其中一個腳本中,SqlCommand.ExecuteNonQuery
引發超時異常。
當我在SQL Server Management Studio中執行所有這些表的創建時,它們可以很好地立即執行。
有沒有人有一個想法,當從應用程序創建表時,可能會導致超時?
所有SQL腳本,類似於像以下:
SQL:
create table dbo.Test
(
Code varchar(10) not null
, Name varchar(50) not null
, other columns...
primary key
, unique key
, foreign key
)
這些腳本使用此代碼C#運:
try
{
using (SqlConnection conSQL = new SqlConnection ("[connection string]"))
{
using (SqlCommand cmdSQL = new SqlCommand(sSQL, conSQL))
{
cmdSQL.CommandTimeout = iTimeOut;
conSQL.Open();
cmdSQL.ExecuteNonQuery(); // this is where it jumps to catch part and
// throws out timeout exception
conSQL.Close();
}
}
}
catch(Exception ex)
{
throw (ex);
}
這是發生在測試服務器上,這意味着當應用程序正在執行這些腳本時,服務器上沒有其他事情發生。
我們需要看到您的相關C#代碼和SQL查詢。 –
試一下'cmdSQL.CommandTimeout = 0;' – Sachu
你同意sql腳本很簡單吧?我只是不明白爲什麼這一個腳本是超時的,其餘的不是。要注意的是,Test sql服務器上沒有其他任何運行,iTimeOut值爲30秒。 – Andy