0

I am create one application that application one file send to user at specific time and specific day export sql data into excel ,sending email that functions working fine but problems is that it cannot execute particular time and particular day I am tried myself but it wont work

private void Form1_Load(object sender, EventArgs e)
{ 
    if ((DateTime.Now.DayOfWeek== DayOfWeek.Saturday) &&(DateTime.Now.Hour==19) &&(DateTime.Now.Minute==15))
    {
        exportsqldatatoexcle();
        emailattachment(); 
    }
}

public void exportsqldatatoexcle()
{
    string con1 = "Data Source=ADMIN\\SQLEXPRESS;Initial Catalog=PhysioCure; Integrated Security=true";
    SqlConnection connection = new SqlConnection(con1);
    connection.Open();
    sda = new SqlDataAdapter("select PationName,RegistrationDate,ContactNo,Age,Sex,Chief_Complain,Investigation_Result,PastHistoryAny,Physical_Examination,Medications,Prognosis,Electro_Therapy,Neuro_Rehabilitation,Ortho_Rehabilitation,Cardio_Pulmonery_Rehabilitation,Sports_Rehabilitation from Physio_cureTable order by RegistrationDate desc", con1);
    dt = new DataTable();
    sda.Fill(dt);

    DataColumnCollection dccollection = dt.Columns; 
    Microsoft.Office.Interop.Excel.ApplicationClass excelapp = new Microsoft.Office.Interop.Excel.ApplicationClass();
    excelapp.Application.Workbooks.Add(Type.Missing); 

    for (int i = 1; i < dt.Rows.Count + 1; i++)
    {
        for (int j = 1; j < dt.Columns.Count + 1; j++)
        {
            if (i == 1)
            {
                excelapp.Cells[i, j] = dccollection[j - 1].ToString();
            }
            else
            {
                excelapp.Cells[i, j] = dt.Rows[i - 1][j - 1].ToString();
            }
        }
    }

    excelapp.ActiveWorkbook.SaveCopyAs("E:\\Winform n console\\PhysioCure\\PhysioCure\\Patient_Details.xls");
    excelapp.ActiveWorkbook.Saved = true;
    object m = Type.Missing;
    excelapp.ActiveWorkbook.Close(m, m, m);
    excelapp.Quit();
    connection.Close();
    MessageBox.Show("Detail file successfully create!");
}

private void emailattachment()
{
    //try
    //{
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        mail.From = new MailAddress("my email id");
        mail.To.Add("my friend email id");
        mail.Subject = "Sending you Patient_Details File - 1";
        mail.Body = "Please Check Mail With Attachment dear..... ";

        System.Net.Mail.Attachment attachment;
        attachment = new Attachment("E:\\Winform n console\\PhysioCure\\PhysioCure\\Patient_Details.xls");
        mail.Attachments.Add(attachment);

        SmtpServer.Port = 587;
        SmtpServer.Credentials = new System.Net.NetworkCredential("my email id", "password");
        SmtpServer.EnableSsl = true;

        SmtpServer.Send(mail);

        MessageBox.Show("Details File send on your mail please check your mail");
    //}
    /*catch (Exception ex)
    {
        MessageBox.Show("Mail cannot send please contact developer!!");
    }*/ 
}
4

1 回答 1

0

如果您可以在命令行应用程序中封装通过电子邮件发送文件的进程,您可以使用 Windows 任务调度程序对其进行调度。

我会推荐 SSIS 和 SQL 代理,或 SSRS,但因为看起来你正在使用 SQL Express,所以你可能没有这些选项。

于 2013-01-26T19:59:04.387 回答