要求:
做一个窗体程序,当运行的时候,当到了一定时间自动生成excel。
1.根据要求生成excel的方法已经基本没有问题。
2.有的excel是每晚8:00 pm或11:59 pm 生成,有的excel是每个星期周末生成,有的是每个月底生成。疑点:
1.计时如何实现?如何长时间计时运行,不会出错。
2.如何进行对两个数据库同时操作?一个程序生成两个系统的excel...我的想法:
1.关于计时,我考虑用timer控件,但不会计时,希望大家指点 谢谢
2.关于两个数据库同时操作,还没头绪,希望大家教下最后,希望大家讲解的同时,能发点实例或者相关资料给我参考下,谢谢了!

解决方案 »

  1.   

    我觉得定时可以用Windows带的Scheduled Tasks, 设定时间,然后它在固定的时间运行。
    两个数据库同时操作?不明白什么意思。
      

  2.   

    这个程序应该是要根据服务器的时间来的
    两个数据库是指有两个系统,一个程序来控制定时生成excel....(这两个系统的生成条件 要求也不同)
      

  3.   

    如果你把excel导出做成一个计划任务控制台程序,那么可以利用windows的任务计划,添加定时操作
      

  4.   

    使用定时器timer控件计时问题,很简单,定义一个时间就行了,就是timner的interval 属性,单位是毫秒
      

  5.   

    timer一直走就行了,可以是一秒,而且越短越好,以免错过导出excel的时间。然后再获取当月的月份,除了2月是28号其它月份都大于等于30天吧。然后根据这个时间来执行你的导出操作,如果你觉得不保险,并在数据库或配置文件记录你到处的时间,然后在后面一个月的导出操作中会比较时间是否正确。 当天的时间同理
      

  6.   

    程序启动的时候取到当前时间,根据当前时间判断是否需要生成Excel。
      

  7.   

    继续求解... 关于timer我自己也会查下资料的 谢谢大家
      

  8.   

    在数据库里面做个作业。通过SQL语句在你所需要的时间查询产生你所要生成相关Excel表格的数据并且填充到指定的数据库临时表格 中标记为未处理。然后PC端程序只需要做多个Timer线程来不停的扫描哪些临时数据库表格。如果有发现未处理数据就生成Excel表格同时标记成已处理。
      

  9.   

      string cusname = textBox1.Text.Trim();
                    string contractId = comboBox3.Text.Trim();                FileStream objFileStream;
                    StreamWriter objStreamWriter;
                    string strLine = "";
                    string FileName = filename;                objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
                    objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode); 
                                  strLine = "" + Convert.ToChar(9) + "" + Convert.ToChar(9) + cusname + Convert.ToChar(9) + "" + Convert.ToChar(9) + contractId + Convert.ToChar(9) + yckId + Convert.ToChar(9);
                    objStreamWriter.WriteLine(strLine);                strLine = "品名" + Convert.ToChar(9) + "产品代码" + Convert.ToChar(9) + "花型"
                       + Convert.ToChar(9) + "花号" + Convert.ToChar(9) + "缸号" + Convert.ToChar(9) + "箱包数" + Convert.ToChar(9) + " 合同号" + Convert.ToChar(9) + "订单号" + Convert.ToChar(9) + "客户产品代码" + Convert.ToChar(9) + "数量" + Convert.ToChar(9) + "主唛头" + Convert.ToChar(9);
                    objStreamWriter.WriteLine(strLine);                strLine = "";
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        for (int j = 0; j < 11; j++)
                        {
                            strLine = strLine + dt.Rows[i][j].ToString() + Convert.ToChar(9);
                        }
                  
                        objStreamWriter.WriteLine(strLine);
                        strLine = "";
                    }
                    strLine = "" + Convert.ToChar(9) + "" + Convert.ToChar(9) + "件数:" + label20.Text + Convert.ToChar(9) + "总米数:" + label18.Text + Convert.ToChar(9) + "总码数:" + label16.Text + Convert.ToChar(9);
                    objStreamWriter.WriteLine(strLine);
                    objStreamWriter.Close();
                    objFileStream.Close();
                    MessageBox.Show("导出成功!" + FileName);
      

  10.   

    生成Excel都会那还有什么难的每隔一段时间取一个系统时间,然后调用生成Excel的方法不就完了
      

  11.   


    哎 就是规定的需求时间自动生成.....
    没做过winfrom  
      

  12.   

    timer已经解决 呵呵 多些大家帮助 我再看看多线程  结贴