我是VB的新手,我正在做一个项目,记录员工打卡和下班的详细信息。我想知道怎么做,这样当“打卡”按钮被点击时,时间将开始记录,而当“打卡”按钮被按下时,时间将停止记录。此外,一旦点击了打卡时间,打卡时间和打卡时间之间的时间将被记录下来,并存储到mySQL数据库中。
此信息将输出到DataGrid上,显示员工打卡的时间和日期。
然后,小时数将乘以预先编写的每小时工资。它已经存储在我的mySQL数据库中的一个表中。
任何帮助都将不胜感激。
发布于 2012-12-28 04:55:44
您应该存储事件而不是结果。
存储打卡时间以及一行打卡时间。然后,您将需要在数据库或应用程序中使用一个过程,该过程将遍历各行并将打卡与注销进行匹配。
这种方法将使应用程序崩溃/终止并重新启动,而不会丢失数据。
或者,您可以将打卡和打卡放在同一记录(不同的列)中,然后将打卡插入匹配employee和null打卡的第一行。
发布于 2012-12-28 06:00:00
我会让打卡按钮在程序中触发一个事件,为我假设您当时已经拥有的员工ID创建一条记录。
然后,一旦单击了打卡按钮,您将触发一个事件,该事件将转到您的数据库,并拉入它找到的第一条记录,其中包含您要查找的员工ID、有效的打卡时间和表示打卡时间的null。如果程序没有找到符合所有条件的东西,你将不得不按照你想要的方式来处理(我会在员工登录时或其他任何时候进行查找,只有在没有记录的情况下才允许他们访问打卡按钮,并且只有在找到他们的ID的记录时才允许他们使用打卡按钮)。
一旦在内存中有了该记录,就应该设置时钟输出时间,并使用之前写入数据库的时钟输入时间来计算差值。
我会使用数据库中的一个存储过程来处理添加/更新/管理记录,并在程序本身内执行所有计算和任何其他您想要在打卡时执行的操作。但我认为,就实际处理的位置而言,这只是一种偏好。
最明显的原因是,程序可以在打卡和打卡之间关闭,而不会丢失任何东西。如果你试图在内存中记录所有这些信息,那么一旦程序因为某种原因关闭(手动关闭/通过任务管理器“结束任务”/未处理的错误),你就会丢失所有的时钟。
https://stackoverflow.com/questions/14060867
复制相似问题