我有一個事務與多個插入。所有的插入物都很好,除了一個。 我驗證了參數,拼寫,所有它,似乎我沒有搞清楚。 它給我的錯誤:多插入事務連接超時 - ADO.NET - SQL Server
Timeout expired. The timeout period elapsed prior to completion of the operation
or the server is not responding.
我的交易看起來是這樣的:
SqlConnection db = new SqlConnection(connString);
DataSet dataSet = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
using (db)
{
db.Open();
SqlTransaction trans = db.BeginTransaction();
try
{
//insert into COMMSignalDefinition !!Problem HERE
da.InsertCommand =
new SqlCommand("INSERT INTO COMMSignalDefinition(Name) "
+ "VALUES (@name)", db, trans);
da.InsertCommand.Parameters.Add("@name", SqlDbType.NVarChar);
foreach (DataRow row in ds.Tables["COMMTerminalSignal"].Select())
{
da.InsertCommand.Parameters[0].Value = row.ItemArray[1];
da.InsertCommand.ExecuteNonQuery();
}
// insert into COMMSignalExceptionDefinition -- names
da.InsertCommand =
new SqlCommand("INSERT INTO COMMSignalExceptionDefinition(Name) "
+ "VALUES (@name)", db, trans);
da.InsertCommand.Parameters.Add("@name", SqlDbType.NVarChar);
foreach (DataRow row in ds.Tables["COMMSignalExceptionDef"].Select())
{
da.InsertCommand.Parameters[0].Value = row.ItemArray[1];
da.InsertCommand.ExecuteNonQuery();
}
trans.Commit();
MessageBox.Show("You have successfully imported your Settings. "
+ "You can now exit the program.",
"Success",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception e)
{
trans.Rollback();
MessageBox.Show(e.Message,
"Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
我有多個插件,它做工精細(我刪除了他們的其餘部分)和我搬到了一個有問題的開始。 我的問題是我可能做錯了什麼? 我甚至驗證瞭如果「有問題」的查詢被髮送到服務器,與SQL Server Profiler,
它!如果我在SQL Server Management studio
執行它,它也可以。
Connection Timeout
設置爲30
能否請您給我一些線索? SQL Server版本是2005! 謝謝!
什麼記錄表「COMMTerminalSignal」和「COMMSignalExceptionDef」中的數字?在SQL Server Management Studio中運行需要多長時間? – Jacco
COMMTerminalSignal有2條記錄,COMMSignalExceptionDef(插入的作品在這一個),有1個記錄 – darkdante
@Jacco它運行瞬間 – darkdante