0

私は、アプリケーション1つのファイルが特定の時間と特定の日にユーザーに送信する1つのアプリケーションを作成し、SQLデータをExcelにエクスポートし、正常に機能する電子メールを送信しますが、問題は、特定の時間と特定の日に実行できないことです。

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 に答える