如何计算时间差并将结果存储在mySQL数据库(VB.NET)中?

时间:2012-12-27 20:28:01

标签: mysql vb.net time datagrid clock

我对VB很陌生,我正在开展一个项目来记录员工计时和计时的详细信息。我想知道如何制作它,所以当点击'clock in'按钮时,时间将开始录制,当按下'clock out'按钮时,时间将停止录制。此外,一旦点击时钟,就会记录时钟输入和时钟输出之间的小时数,并将其存储到mySQL数据库中。

此信息将输出到DataGrid,显示员工上班的时间和日期。

然后将小时数乘以预先编写的小时工资..它已存储在mySQL数据库的其中一个表中。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您应该存储事件而不是结果。

存储时钟输入时间以及时钟输出时间的行。 然后,您需要在数据库或应用程序中执行一个过程,该过程将遍历行并将时钟输入与时钟输出匹配。

此方法将使应用程序崩溃/终止并重新启动而不会丢失数据。

或者你可以将时钟输入和输出放在同一条记录中(不同的列),然后将时钟输出插入匹配employee和null clock-out的第一行。

答案 1 :(得分:0)

我会让时钟按钮触发程序中的事件,该事件创建了我假设您当时拥有的员工ID记录。

然后,一旦点击了时钟输出按钮,您将触发一个事件,该事件将传递到您的数据库,并使用您要查找的员工ID拉入它找到的第一条记录,一个有效的时钟和一个null为闹钟时间。如果程序没有找到符合所有条件的东西,那么你必须处理它,但是你想要(我会在员工登录时进行查找或者只是允许他们在按钮中访问时钟,如果没有记录的话)如果找到了他们的ID记录,则只允许他们使用时钟输出按钮。

在内存中记录完成后,应设置时钟输出时间,并使用先前写入数据库的时间计算差异。

我会在数据库中使用存储过程来处理添加/更新/管理记录,并在程序本身内部的时钟输入/输出时执行所有计算和其他任何操作。但我认为,就实际处理的发生而言,它只是偏好。

最明显的原因是程序可以在时钟输入和时钟输出之间关闭,而不会丢失任何东西。如果你试图在内存中跟踪所有内容,一旦程序因任何原因关闭,你将失去所有的时钟(手动关闭/通过任务管理器执行“结束任务”/未处理的错误)。