0
我有一個CLR存儲過程,我想從C#異步執行。異步函數不執行sql CLR存儲過程
代碼如下:
private delegate void GeneratePayrollDelegate(string payProcessID);
public void GeneratePayroll(string payProcessID)
{
GeneratePayrollDelegate del = new GeneratePayrollDelegate(GeneratePayrollAsync);
del.BeginInvoke(payProcessID, null, null);
}
public void GeneratePayrollAsync(string payProcessID)
{
try
{
using (SqlConnection connection = new SqlConnection(DLConnectionStringHelper.GetConnectionString() + "; async=true;"))
{
using (SqlCommand cmd = new SqlCommand("proc_GeneratePayroll", connection))
{
cmd.CommandTimeout = 3600;
cmd.CommandType = CommandType.StoredProcedure;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
}
}
}
catch (Exception ex) { _Exceptions.ManageExceptions(ex); }
}
此存儲過程成功執行,如果它從SQL運行。
當它從上面的代碼執行時,當嘗試通過作爲參數發送的ID檢索行時,CLR存儲過程中沒有任何行。
需要幫助!
並且錯誤是? – Jodrell 2011-06-06 09:24:26
在CLR過程中,其中一個函數正在採取一些與此payprocessID相關的必需信息,它不返回任何行。 當我嘗試檢索位置0的行時,它會給出範圍異常 – Boomer 2011-06-06 09:28:16
因此,它仍然可以成功執行,但是會得到意想不到的結果?編輯問題會更好。 – Jodrell 2011-06-06 09:34:55