asp.net 时间对比

dys_198102 2010-09-08 02:31:54
数据库中有两个订单,t1=2010-9-1,t2=2010-9-5,这是下订单的时间,如果3天后没有做处理,自动发送邮件给客户。
执行邮件的函数是emails()

现在这个时间我如何做比较,以及怎么做,邮件只发送一次。。。求高手指点。
...全文
559 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
imissyouyw 2010-09-10
  • 打赏
  • 举报
回复
用aspnetcomet 。服务器推技术,可以满足你的要求。。。。。。。。
glest 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 dys_198102 的回复:]

楼上的老大,如果我启动IIS后,要让程序10分种运行一次,上边的代码可以不。。。
[/Quote]

我只是测试了Timer可以正确运行:每5秒写一次文件。通过10分钟的观察,运行正常。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
有道理。。。试一下。
glest 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dys_198102 的回复:]

void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//以下使用System.Timers.Timer类 每间隔10分钟存一次数据
System.Timers.Timer myTimer1 = new System.Timers.Timer(6……
[/Quote]

把myTimer1定义成全局静态变量.局部变量可能会被垃圾回收。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
高手指点一下。。。。。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
我想要的是网站一直运行,而且程序隔10分种就去执行emails一次。。。。有什么办法没。。。。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
楼上的老大,如果我启动IIS后,要让程序10分种运行一次,上边的代码可以不。。。
glest 2010-09-09
  • 打赏
  • 举报
回复
经过测试完全可以啊!

测试代码:
System.Timers.Timer tm = new System.Timers.Timer(5000);
void Application_Start(object sender, EventArgs e)
{
tm.Elapsed += new System.Timers.ElapsedEventHandler(tm_Elapsed);
tm.Enabled = true;
}

void tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
System.IO.File.AppendAllText(@"E:\test2.txt",DateTime.Now.ToLongTimeString()+"\r\n");
}

glest 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dys_198102 的回复:]

public static System.Timers.Timer myTimer1=null;
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//以下使用System.Timers.Timer类 每间隔10分钟存一次数据
/……
[/Quote]

注意如果是本机调试,Application_Start只能在你重新启动本地的IIS,即关闭后才会执行里面的代码。你可以设置断点看是否运行了。
glest 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dys_198102 的回复:]

public static System.Timers.Timer myTimer1=null;
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//以下使用System.Timers.Timer类 每间隔10分钟存一次数据
/……
[/Quote]

我给你测试一下吧,按说可以的。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
public static System.Timers.Timer myTimer1=null;
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//以下使用System.Timers.Timer类 每间隔10分钟存一次数据
//实例化Timer类,设置间隔时间为600000毫秒(10分钟存一次总人数);
myTimer1 = new System.Timers.Timer(600000);
//myTimer1.Interval = 60000;
myTimer1.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件;
myTimer1.Elapsed += new System.Timers.ElapsedEventHandler(emails); //到达时间的时候执行事件myTimer_Elapsed;
myTimer1.AutoReset = true; //设置是执行一次(false)还是一直执行(true);



}设置全局定时变量,好像也不行啊。。。。
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
思路和你的差不多,但是具体实现有点麻烦,怎么定义全局静态的Timer哪???
gaven2060 2010-09-09
  • 打赏
  • 举报
回复
我的思路是每隔十分钟 获取一次数据库没处理的订单,然后用下单时间和当前时间作对比 如果大于3天的就发送邮件!
就这样 思路很简单 ! 判断最多用个循环
但是如果你要考虑到效率的话我这种不是最好的
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
我的是webform.........,要用ajax控件的time?
jsjhj2008 2010-09-09
  • 打赏
  • 举报
回复
1 首页用个定时器定时去看看用户有没有处理
2 当定时器获取的时间和下订单的时候已经相差大于或等于时间了,程序执行发送Email的操作
3 不知道你用的winfrom还是webfrom,winfrom用定时器time就可以了,webfrom的话用下ajax控件Time吧!其实都是一样的
dys_198102 2010-09-09
  • 打赏
  • 举报
回复
怎么把myTimer1定义成全局静态变量???
鱼C缸 2010-09-09
  • 打赏
  • 举报
回复
学习, 哎!!!
dys_198102 2010-09-08
  • 打赏
  • 举报
回复
为什么asp.net程序中的global加定时器这么不好使,刷新也没用。。高手指点
ljc435625695l 2010-09-08
  • 打赏
  • 举报
回复
bangding
dys_198102 2010-09-08
  • 打赏
  • 举报
回复
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//以下使用System.Timers.Timer类 每间隔10分钟存一次数据
System.Timers.Timer myTimer1 = new System.Timers.Timer(60000); //实例化Timer类,设置间隔时间为600000毫秒(10分钟存一次总人数);
myTimer1.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件;
myTimer1.Elapsed += new System.Timers.ElapsedEventHandler(emails); //到达时间的时候执行事件myTimer_Elapsed;
myTimer1.AutoReset = true; //设置是执行一次(false)还是一直执行(true);
}
我就按1分种执行一次emails,为什么不太灵。。。。。。
好多情况下都是我设断点才有用。不设好像没用。。。。
加载更多回复(6)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧