asp.net网站如何定时更新数据库

asp.net网站如何定时更新数据库,第1张

如果是放在虚拟空间的话,那就麻烦点。

定时 *** 作,有些麻烦。因为必须有人访问你的程序你的程序才会被执行。

也可以通过

Global.ASAX

来定义一个计时器。

不过,你可以用一个

CACHE

数据库

XML

记录更新时间。

比如每次运行的时候,检查上次更新的时间,如果超过一定的时间,就调用更新程序更新数据。

这个你只能被动地去接收数据库里面的数据变化,而不能通过数据库的数据变化去影响vs里面的数据。

你可以开一个线程,然后这个线程是while(true)死循环...每个1秒往数据库读一次数据...

 Thread thread = new Thread(runDo)

 thread.Start()

  private void runDo()

 {

    while (true)

       { 

           //do something......

           Thread.Sleep(1000)//睡眠1秒

       }

 }

或者用Timer控件(实际这个也是线程,就是上面那个方法...)

额,或许我理解错你的意思?

你说的数据库数据每秒都在变,是谁促使它变得?是别的应用程序?还是你自己的程序每秒都在更新数据库?

这是因为回传造成的

首先把流程搞清楚:加载

1、加载数据到文本框

2、修改数据

3、点“提交”这次回传,导致后台页面再次加载原始数据到文本框

注意:此次后台程序又将文本框的值,设置成数据库里面的那个原来的值

4、插入数据库。。。结果插入的时候textbox的值已经变了,变成还是数据库里面的那个。。。

上述,可以设置断点调试,一下就看出来了。

调试会么?点左边设置断电,然后F5启动调试,到断点后按F11单步调试,看看各个变量的值

解决方法应该这样

1、在你加载原始数据到文本框的方法里面加上

if(!IsPostBack)

{

//此处加载文本框原始数据,并且只有再第一次加载页面的时候才改变textbox的值

}

意思是只有再页面首次加载的时候才加载文本框的值,如果是回传,则不加载

2、更新的方法里面加上

if(IsPostBack)

{

//此处写更新方法

}

意思是,当是页面回传的时候,更新文本框的值,其实这个加不加无所谓。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10651184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存