小编Dhe*_*enn的帖子

在SQL-Server中更新自动化

我正在做一个名为"考勤管理系统"的项目

该公司拥有自己的生物识别手指扫描仪,可检查员工的出勤情况并存储在数据库表中.

该表由4个字段组成 (ID autonumber, EmployeeNo, CheckTime and CheckType)

计时系统存储所有员工的日志和出勤,但不指定检查类型是"I"还是"O".正如您可以看到下面的图像,每次员工登录时,系统会自动将其存储到数据库,但存储为"I",当同一员工再次登录时,它将再次存储为"I".

在此输入图像描述

我的客户希望它尽可能自动化.一旦员工再次登录,他希望将checktype更改为"O".

例如:

我是一名员工.我今天早上8点登录,然后将存储到数据库中

今天早上8点用checktype"我"..因为我不知道我已经登录了,所以我在上午8:04第二次再次进入..系统再次将它存储为"I",就好像我一样我要在下午5点退出,系统也将其记录为"我"..

我希望这能自动更新数据库.没有用户提供的任何参数.我希望它在存储过程中自动化该过程.

它应该限制在同一个员工中:示例:

Employee1今天上午8点登录..(checktype"I")员工1今天上午11点再次登录...(检查类型"O")employee1再次登录于今天中午12点..(检查类型"我")employee1再次登录今天下午4点(checktype "O")

标准应限制在employeeseno,checktime only ..并且还希望根据给定的数据更新checktype.

旧系统无法将登录的ins存储为"O",它纯粹是"我".

这该怎么做?我需要你的投入和帮助!请?

我创建了一个存储过程,但不知道我可以在哪里启动它,我不知道完成该过程并使其工作..

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE AUTOMATIC_OVERRIDE
    @ID INT,
    @EMPLOYEENO NVARCHAR(20),
    @CHECKTIME DATETIME,
    @CHECKTYPE NVARCHAR(1)

AS
    SET NOCOUNT ON;
    WHILE @ID = (SELECT ID FROM CHECKTIME)

        SELECT ID,EMPLOYEENO,CHECKTIME,CHECKTYPE
          FROM CHECKTIME
         GROUP BY ID,EMPLOYEENO,CHECKTIME,CHECKTYPE
         ORDER BY CHECKTIME
GO
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.谢谢.

sql sql-server stored-procedures insert time-and-attendance

6
推荐指数
2
解决办法
1527
查看次数

如果条件为真,则代码不会返回

我需要验证用户提供的信息是否在数据库中,我已经尝试输入正确的条件而不能正常工作它会返回一个在数据库中找不到的错误.你能检查我的代码并告诉我发生了什么吗?,我试图调试它,但foreach循环继续循环,并没有转到if(isexist)语句

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        token = FormsAuthentication.HashPasswordForStoringInConfigFile(txtUsername.Text.ToString() + txtAcctNo.Text.ToString(), "MD5");
        try
        {
            bool isExist = false;
            DataSet ds = new DataSet();
            ds = startService.getAllUsersWithoutFilter();
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow dRow in ds.Tables[0].Rows)
                {

                    string userName = dRow["UserName"].ToString();
                    string acctNo = dRow["AccountNumber"].ToString();
                    string question = dRow["SecretQuestion"].ToString();
                    string answer = dRow["SecretAnswer"].ToString();

                    if (userName == txtUsername.Text.ToString() && acctNo == txtAcctNo.Text.ToString() && question == cboQuestion.Text.ToString() &&  answer == txtAnswer.Text.ToString())
                    {
                        isExist = true;
                    }
                    else
                    {
                        isExist = …
Run Code Online (Sandbox Code Playgroud)

c# database sql-server asp.net web-services

2
推荐指数
1
解决办法
443
查看次数