如何在特定日期安排列的自动增量

时间:2014-12-30 11:59:55

标签: c# asp.net visual-studio-2013 sql-server-2014

我有一张包含员工详细信息的表格,其中还列出了每种类型的员工有多少叶子。该表的脚本为:

CREATE TABLE [dbo].[Employee]
(
    [emp_ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
    [username] [nvarchar](50) NOT NULL,
    [emp_name] [nvarchar](max) NOT NULL,
    [gender] [nvarchar](max) NOT NULL,
    [password] [nvarchar](max) NOT NULL,
    [pay_roll_num] [nvarchar](max) NOT NULL,
    [designation] [nvarchar](max) NOT NULL,
    [earned_leave] [numeric](18, 0) NOT NULL,
    [halfpay_leave] [numeric](18, 0) NOT NULL,  
    [casual_leave] [numeric](18, 0) NOT NULL,       
    [primary_address] [nvarchar](max) NOT NULL,
    [primary_phone] [nvarchar](max) NOT NULL,
    [email_ID] [nvarchar](max) NOT NULL,
    [manager_ID] [nvarchar](max) NOT NULL,

    CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED ([username] ASC)
       WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,        
             ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] 
TEXTIMAGE_ON [PRIMARY]

我正在使用Visual Studio Ultimate 2013和SQL Server 2014。

问题1:
现在,要求在每年的1月1日和7月1日,每个员工的账户中有12个叶子记入所赚和半薪类别。这些都是转发的。

EG。如果ABC有

Earned Leave   = 20
Half-Pay Leave = 10

然后在午夜随着年份的变化和1月1日的开始,应该发生自动增量,导致,

Earned Leave   = 50
Half-Pay Leave = 40

我尝试在管理端的page_load事件上执行此操作,方法是创建一个比较id datetime.now返回01/01的简单函数,如果是,则递增。但后来我意识到,每次管理员登录上述2个日期时都会发生这种情况。我想到这样做的任何其他方法或页面都要求启动应用程序,而我希望在没有任何人为干预的情况下在后端发生这种情况。

问题2:
应向管理员显示每个用户帐户中发生的信用卡和借记卡的记录,如日志。如何在gridview或表格中以任何方式显示此内容? 例如,当管理员登录并选择员工姓名以查看他们的休假资产负债表时,它应该类似于下面(对于所有类型的叶子具有相同类型的详细信息)

   Employee name: Abc Designation: Xyz Date of joining: 01/01/2008 **Credit Leaves**

                   Earned Leave
   Credit for     Leave Availed      No. of Days 
                  From  To          D      C     Balance
   1/1/12                           12           50
                  7/4   10/4        4            46
   1/7/12                                   12   58
                  13/08  23/08      11           47                       
                  04/09  08/09      05           42
   23/10      Leave Encashment      10           32 
   1/1/13                                   12   34  
   1/7/13                                   12   46
                  22/12  31/12      10           36    
   1/1/14                                   12   48 

正如上面的临时表显示的那样,一定数量的叶子将在特定日期和休假时被记入贷方。 现在,管理员应该能够在员工兑现他的叶子时添加叶子,方法是单击Credit Leaves按钮(加粗文本)。此外,应显示年度日志,在更改年份时,应显示该年份的日志。

我完全不知道如何在gridview中进行这种日志发布。请帮帮我。

1 个答案:

答案 0 :(得分:0)

你有一些选择:

  1. SQL代理作业 - 您可以在指定日期运行特定存储过程,如果已配置,则可以重复运行。请参阅http://msdn.microsoft.com/en-IN/library/ms189237.aspx

  2. Hangfire.io提供了名为“Hangfire”的ASP.NET软件包 - 它有很好的文档,可通过NuGET获得。

  3. 还有很多其他的,但这两个是非常可靠的