怎样用Windows服务实现自动检查数据库中的数据

怎样用Windows服务实现自动检查数据库中的数据,第1张

1、Windows服务好方法,除了此方法还可以使用SQL Server的作业或者Windows的计划任务。

2、至于为何没有插入数据,那不用问肯定是SQL没有被执行(首先您要保证SQL语句的正确性,即在SQL Server的查询分析器中是可以运行成功的,如果这个都保证不了,那么SQL语句有问题了)。

3、建议您为您的Windows服务建立一个文本日志,而且在关键步骤上需要去将成功或失败的过程写入此日志,比如将下列过程使用try语句写入日志:连接数据库、发送SQL语句到数据库执行、以及其他功能 *** 作,如果成功,在日志中写入“某某 *** 作成功”(也可不写入成功信息),如果失败写上“某某 *** 作失败!失败原因:×××。”,失败原因就是try语句的报错的ex消息体,当然必须为每步 *** 作加上日期(根据情况,一般需要精确到秒)。写日志后您就能发现到底是哪里出错了,是Windows服务开发本身的逻辑错误还是代码错误还是SQL语句的错误等等。

4、SQL语句建议使用存储过程。

5、据我了解Windows服务是不需要使用Timer控件的来控制的,您是用Timer控件控制访问数据库的时间间隔嘛?

建议您一步步开发,就和穿衣服一样一件衣服穿好了再穿另外一件,明白我的意思吗?找问题的Bug也是和脱衣服一样,一件衣服脱完了再脱另外一件!有关具体Windows服务的开发可以看看我博客中的这篇文章《一个有用的Windows服务小程序——用来完成Server端的Socket通信》,虽然是在VSNET2003下开发的Windows服务,但大同小异,希望能在Windows服务方面对您有所启发。

另外说明:Windows服务是C/S架构程序,跟您项目本身使用AspNet C#(即B/S架构程序)没有直接关系,只是两个用的是同一个数据库而已(即 *** 作的数据相同),其他互不往来也不影响,且您开发的这个Windows服务是要安装在服务器上,而不是客户端上。

转载,仅供参考。

你用错了,应该用SystemTimersTimer

你用的是SystemWindowsFormsTimer

在 Visual Studio 和 NET Framework 中有三种计时器控件:基于服务器的计时器(可以在“工具箱”的“组件”选项卡上看到)、基于 Windows 的标准计时器(可以在“工具箱”的“Windows 窗体”选项卡上看到)和线程计时器(只能以编程方式使用)。

如果你想让他一直执行,就做个判断,如果无输入就插入空值然后在判断,如果插入空值就+个SQL自动删除,如果不是,那就是用户输入的,但是我感觉这样比较耗费资源,因为无人 *** 作情况下,也自己走

先定义一个全局变量,记录指针

利用timer的话,你在TIMER里设置好时间,然后事件里设置查询记录指针位置的数据,查询完了把内容显示在TEXT里,然后记录指针的全局变量+1即可。

查询前判断一下,记录指针的全局变量是否超过了记录总数,超过了就设置为0,从头开始。

你应该是想实现每秒执行一次上门的代码吧,定时器不是这样用的

public Form1()

{

InitializeComponent();

Timer t = new Timer(); //创建对象

tTick += new SystemEventHandler(timer1_Tick); //添加定时器响应事件

tInterval = 1000; //设置定时时间为1秒

tStart(); //启动定时器

}

int i = 0;

void timer1_Tick(object sender, EventArgs e)

{

textBox1Text = dsTables[0]Rows[i][1]ToString();

i=i+1;

if (i >=dsTables[0]RowsCount)

i = 0;

}

Timer time = new Timer(); //定义一个 Timer

//执行方法 里面需要一个类 可以定义一个伪类

//也可以 自己 定义一个类 继承TimerTask这个类

//里面必须实现 run方法

//run方法 里面就写你的 实做 方法

//schedule 方法有很多重载 有很多参数我用最简单的

//给你说明 第2个参数是 说 每隔一定的时间执行一次

//相关说明可以去jdk 帮助文档里面找

timeschedule(new TimerTask() {

public void run() {

int inSertValue{

try{

commection con1=con;

Statement stmt=con1createStatement();

str="(insert ……)";

……

stmtclose();

} catch() {……}

} } //加到这里就好了!!最好把这样方法封装起来

}

}, 1000);

以上就是关于怎样用Windows服务实现自动检查数据库中的数据全部的内容,包括:怎样用Windows服务实现自动检查数据库中的数据、创建一个windows服务后,里面的timer事件不触发是怎么回事、关于java里Timer类的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存