首页 > 解决方案 > 在同一日期和时间插入多个函数调用

问题描述

我正在创建一个“休假管理系统”。

当用户申请休假然后离开插入数据库然后通知邮件发送特定的人。

问题:有时在相同的日期和时间多次插入相同的请假请求。

为了防止这种情况,我添加了

  if (flag2 == true)

首先,添加然后发送邮件,但我仍然有这个问题 - 但不是每次,而是几次。

我认为这可能是因为发送邮件需要更多时间。

    protected void duration_Click(object sender, EventArgs e)
     {       
   
               srcLeaveDetails.InsertParameters["Leave_Id"].DefaultValue = txtleaveid.Text;
                srcLeaveDetails.InsertParameters["Leave_EmpId"].DefaultValue = txtempid.Text;
                srcLeaveDetails.InsertParameters["Leave_EmpName"].DefaultValue = TextBox11.Text + " (" + Label20.Text + ")";
                srcLeaveDetails.InsertParameters["Leave_ReportingOfficer"].DefaultValue = TextBox23.Text;
                srcLeaveDetails.InsertParameters["Leave_Department"].DefaultValue = TextBox21.Text + '-' + TextBox24.Text;
                srcLeaveDetails.InsertParameters["Leave_Type"].DefaultValue = DropDownList1.Text;
                srcLeaveDetails.InsertParameters["Leave_StartDate"].DefaultValue = txtStartDate.Text;
                srcLeaveDetails.InsertParameters["Leave_EndDate"].DefaultValue = txtEndDate.Text;
                srcLeaveDetails.InsertParameters["Leave_Duration"].DefaultValue = txtduration.Text;
                srcLeaveDetails.InsertParameters["Leave_Remarks"].DefaultValue = txtremarks.Text;
                //srcLeaveDetails.InsertParameters["Leave_ApplicationDate"].DefaultValue = TextBox2.Text;
                srcLeaveDetails.InsertParameters["Leave_ApplicationDate"].DefaultValue = app_date_time;
                srcLeaveDetails.InsertParameters["Leave_Location"].DefaultValue = Label21.Text; ;
                srcLeaveDetails.InsertParameters["Emp_Centre"].DefaultValue = Labe_mainlocation.Text;

            bool flag = false;
            try
            {
                srcLeaveDetails.Insert();                  
              
                flag = true;
                Label14.Text = "Your Leave Request has been recorded";

                
            }
            catch (SqlException s)
            {

                // Response.Write(s.Message);
                Label14.Text = " Error! Please Try Again";
            }
         
            if(flag==true)
                sendMail();  
            

     }

邮件功能

 public void sendMail()
   {
try
   {
        
       using (MailMessage mm = new MailMessage(" ", " "))
            {
                mm.Subject = "Email-Notification of Leave for approval ";
                mm.Body = ""
                mm.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.office365.com";
                smtp.EnableSsl = true;
                NetworkCredential NetworkCred = new NetworkCredential("", "");
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = NetworkCred;
                smtp.Port = 587;
                smtp.Timeout = 2000000;
                smtp.Send(mm);
   }catch(exception ex){} }
                         

标签: c#asp.netinsertsmtp

解决方案


推荐阅读