我有一個具有OnInserted處理程序的SqlDataSource。處理程序發送一封電子郵件,其中包含從插入記錄中收集的數據。包括它的ID(輸出參數)。SqlDataSource OnInserted提前觸發
昨天,我有一封電子郵件,發件人的時間戳爲4:00 pm。在SQL中提交記錄的時間戳之前20分鐘。如果你認爲這是web/sql/exchange服務器之間的機器時間差異......我已經排除了這一點。 Insert由存儲過程執行。它在幾張表格中記錄了記錄。所有這些都有下午4:20的時間戳。
此外,電子郵件中包含一個不準確的ID。與發送電子郵件時未記錄的記錄保持一致。
問題是,如何在SqlDataSource的OnInserted處理程序發送的電子郵件在SQL中提交記錄之前發送?
protected void On_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
try
{
//GET THE RECORD ID
String RecordID = String.Empty;
RecordID = e.Command.Parameters["@RecordID"].Value != null ? e.Command.Parameters["@RecordID"].Value.ToString() : String.Empty;
//SEND THE EMAIL
SmtpClient smtp = new SmtpClient("SmtpHere",##);
MailMessage email = new MailMessage();
email.From = new MailAddress("FromAddressHere");
email.To.Add("ToAddressHere")
email.Subject = "Example Email";
email.Body = "The record #" + RecordID + " was just added.";
smtp.Send(email);
smtp = null;
email.Dispose();
//GO TO THE PAGE WITH THE NEW RECORD ID
HttpContext.Current.Response.Redirect("~/Page.aspx?RecordID=" + RecordID, false);
}
catch (Exception ex)
{
//HANDLE EXCEPTION
}
}
您需要提供事件代碼。 – NotMe 2013-03-14 13:58:52
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-03-14 14:44:20