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!!");
    }*/ 
}
Tim Schmelter
  • 450,073
  • 74
  • 686
  • 939
Aties
  • 87
  • 1
  • 12

1 Answers1

0

If you could encapsulate the processes to send the file via email in a command line application you could schedule it with windows task scheduler.

I'd recommend SSIS and SQL Agent, or SSRS, but since it looks like you're using SQL Express you likely don't have those options.

Kevin Dahl
  • 752
  • 5
  • 11
  • then what can i do kevin sir :) windows scheduler is useful to my application? – Aties Jan 27 '13 at 06:25
  • Definitely - scheduling is the difficult part, so if you have the ability to take advantage of that existing functionality in the OS it'd probably save you a lot of time. You may also want to switch from using COM to create the worksheet to using some of the OpenXML libs - this was a post I referred to, to do something similar: http://stackoverflow.com/questions/527028/open-xml-sdk-2-0-how-to-update-a-cell-in-a-spreadsheet – Kevin Dahl Jan 27 '13 at 07:09