已有57人关注
C#开发实战宝典
发表在C#图书答疑 2010-12-19
是否精华
版块置顶:
你好,《C#开发实战宝典》第29章企业人事管理系统,关于在指定日期内查询员工合同,这个功能你们没有做啊,系统只有设置多少天提示合同日期,但没有显示合同提示啊!

另外我有个语句不明白什么意思,就是在员工合同查询的那段代码,我把它贴上来:
 #region  查询指定范围内生日与合同到期的职工
        /// <summary>
        /// 查询指定范围内生日与合同到期的职工.
        /// </summary>
        /// <param name="i">标识,判断查询的是生日,还是合同</param>
        public void PactDay(int i)
        {
            DataSet DSet = MyDataClass.getDataSet("select * from tb_Clew where kind=" + i + " and unlock=1", "tb_clew");
            if (DSet.Tables[0].Rows.Count > 0)
            {
                string Vfield = "";
                string dSQL = "";
                int sday = Convert.ToInt32(DSet.Tables[0].Rows[0][1]);
                if (i == 1)
                {
                    Vfield = "Birthday";
                    dSQL = "select * from tb_Stuffbusic where (datediff(day,getdate(),convert(Nvarchar(12),cast (cast (year(getdate()) as char(4))+'-'+ cast(month(" + Vfield + ") as char(2))+'-'+ cast (day(" + Vfield + ") as char(2)) as datetime),110))<=" + sday + ") and (datediff(day,getdate(),convert(Nvarchar(12),cast (cast (year(getdate()) as char(4))+'-'+ cast(month(" + Vfield + ") as char(2))+'-'+cast (day(" + Vfield + ") as char(2)) as datetime),110))>=0)";
                }
                else
                {
                    Vfield = "Pact_E";
                    dSQL = "select * from tb_Stuffbusic where ((getdate()-convert(Nvarchar(12)," + Vfield + ",110))>=-" + sday + " and (getdate()-convert(Nvarchar(12)," + Vfield + ",110))<=0)";
                }
                DSet = MyDataClass.getDataSet(dSQL, "tb_Stuffbusic");
                if (DSet.Tables[0].Rows.Count > 0)
                {
                    if (i == 1)
                        Vfield = "是否查看" + sday.ToString() + "天内过生日的职工信息?";
                    else
                        Vfield = "是否查看" + sday.ToString() + "天内合同到期的职工信息?";
                    if (MessageBox.Show(Vfield, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        DataClass.MyMeans.AllSql = dSQL;
                        Show_Form("人事档案浏览", 1);
                    }
                }
            }
        }
        #endregion

这段SQL语句表示什么意思:dSQL = "select * from tb_Stuffbusic where (datediff(day,getdate(),convert(Nvarchar(12),cast (cast (year(getdate()) as char(4))+'-'+ cast(month(" + Vfield + ") as char(2))+'-'+ cast (day(" + Vfield + ") as char(2)) as datetime),110))<=" + sday + ") and (datediff(day,getdate(),convert(Nvarchar(12),cast (cast (year(getdate()) as char(4))+'-'+ cast(month(" + Vfield + ") as char(2))+'-'+cast (day(" + Vfield + ") as char(2)) as datetime),110))>=0)";


where条件筛选的用的什么   where里面的这个datediff表示什么?


明日读者,谢谢!
分享到:
精彩评论 3
小科_mrkj
学分:43 LV2
2010-12-20
沙发
读者朋友:
    您好,我看了一下,有提示框啊,这个应该是在窗体启动的时候提示。另外你问的datediff是SQL中的一个函数,用来返回两个指定日期间的时间间隔数。
heibao
学分:0 LV1
TA的每日心情
开心
2022-07-07 18:01:50
2010-12-20
板凳
小科老师,我这里没提示框啊,这个方法是在窗体加载的时候调用的啊,但是窗体加载后没显示合同到期或者即将要生日的员工信息啊!
小科_mrkj
学分:43 LV2
2010-12-23
地板
读者朋友:
    您好,你把PactDay方法中的Show_Form("人事档案浏览", 1)语句改为“Show_Form("人事档案管理", 1),然后在窗体的加载的时候,可以根据你设置的生日提前提醒时间和合同提前提醒时间提示,并打开“人事档案管理”窗体。没有提示是因为没有查询到数据,你可以在主窗体的MyMenu.PactDay(1);这条语句出插入断点,然后按F11进入到该方法体内,看一下它的执行过程。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照