将从数据库导出的数据以excel的附件形势发送到指定邮箱

        SysRunLog objSysRunLog = SysRunLog.GetInstance();
        private Int16 daynum = Convert.ToInt16(ConfigurationSettings.AppSettings["DaysNum"].Trim());
        private DateTime beginDate ;
        private DateTime endDate;

        public void Run()
        {
            beginDate = DateTime.Now.AddDays(- daynum);
            endDate = DateTime.Now;


            //objSysRunLog.WriteLog("准备发邮件……");
            string emailSubject = "";
            string emailBody = "";
            DataSet ds = new DataSet();
            //emailSubject = beginDate.ToString("yyyy年MM月dd日") + "至" + endDate.ToString("yyyy年MM月dd日") + "未注册客户服务结算办法信息表(试行)";
            emailSubject = endDate.ToString("yyyy年MM月dd日") + "未注册用户救援情况";
            ProcessFile process = new ProcessFile();
            string basePath = AppDomain.CurrentDomain.BaseDirectory;
            string excel = basePath + @"temp\" + DateTime.Now.ToString("yyyymmddhhmm") + ".xls";
            //objSysRunLog.WriteLog(excel);
            try
            {
                ds = WriteLetter2();
            }
            catch (Exception e)
            {
                objSysRunLog.WriteLog("查询失败……" + e);
            }
            EMail email = new EMail();
            //如果有数据,将数据写入EXCEL
            if (ds == null)
            {
                emailBody = "连接数据库失败!";
            }
            else if (ds.Tables[0].Rows.Count > 0)
            {
                try
                {
                    //构建用户数据导入的标准DataGrid,并绑定数据;                   
                    System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();
                    dg.DataSource = ds.Tables[0];
                    dg.DataBind();


                    //将数据写入EXCEL中
                    process.ExportDataGridToExcel(dg, excel);
                    emailBody = beginDate.ToString("yyyy年MM月dd日") + ConfigurationSettings.AppSettings["Hour2"].Trim() + "时" + ConfigurationSettings.AppSettings["Minute2"].Trim() + "分至" + endDate.ToString("yyyy年MM月dd日") + ConfigurationSettings.AppSettings["Hour2"].Trim() + "时" + ConfigurationSettings.AppSettings["Minute2"].Trim() + "分" + "时间内数据详见附件。(请不要回复此邮件)";
                    email.Attach = excel;
                }
                catch (Exception e)
                {
                    objSysRunLog.WriteLog("写入EXCEL失败……" + e.ToString());
                }
            }
            else
            {
                emailBody = beginDate.ToString("yyyy年MM月dd日") + ConfigurationSettings.AppSettings["Hour2"].Trim() + "时" + ConfigurationSettings.AppSettings["Minute2"].Trim() + "分至" + endDate.ToString("yyyy年MM月dd日") + ConfigurationSettings.AppSettings["Hour2"].Trim() + "时" + ConfigurationSettings.AppSettings["Minute2"].Trim() + "分" + "时间内无数据。(请不要回复此邮件)";
            }
            try
            {
                email.To = ConfigurationSettings.AppSettings["MailTo2"].Trim();
                email.Subject = emailSubject;
                email.Body = emailBody;
                email.send();
                objSysRunLog.WriteLog("邮件发送成功:");
            }
            catch (Exception e)
            {
                objSysRunLog.WriteLog("邮件发送失败:" + e.Message);
            }


        }


        public DataSet WriteLetter2()
        {
            string result = "";
            string connectString = System.Configuration.ConfigurationSettings.AppSettings["connString"];
            OracleConnection myConn = new OracleConnection(connectString);


            OracleCommand myCMD = new OracleCommand();
            myCMD.CommandType = CommandType.StoredProcedure;
            myCMD.CommandText = @"PK_EXPORT.P_NOTREG_USER_INTRADAY_INFO";


            myCMD.Parameters.Add("V_DAYS_NUM", OracleType.Number).Value = daynum;
            myCMD.Parameters.Add("V_RESULT", OracleType.Cursor);
            myCMD.Parameters["V_RESULT"].Direction = ParameterDirection.Output;
            myCMD.Parameters.Add("RETURN_CODE", OracleType.Int32);
            myCMD.Parameters["RETURN_CODE"].Direction = ParameterDirection.Output;
            myCMD.Parameters.Add("RETURN_TEXT", OracleType.VarChar, 100);
            myCMD.Parameters["RETURN_TEXT"].Direction = ParameterDirection.Output;


            myConn.Open();
            myCMD.Connection = myConn;
            OracleDataAdapter myAdapter = new OracleDataAdapter(myCMD);
            DataSet ds = new DataSet();
            try
            {
                myAdapter.Fill(ds);
            }
            catch (Exception exp)
            {
                result = "连接数据库时出错:" + exp.ToString();
                ds = null;
            }
            finally
            {
                if (ConnectionState.Open == myConn.State)
                {
                    myConn.Close();
                }
            }
            return ds;
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值