实例介绍
【实例简介】
一个用于C#开发 sql server 作为数据的考勤系统 可以通过码枪扫描条形码或者指纹识别记录考勤信息
【实例截图】
【核心代码】
#region 输入条形码
private void WorkerID_TextChanged(object sender, KeyPressEventArgs e)
{
try
{
if (e.KeyChar == Convert.ToChar(13))
{
string empNo;
DataSet DSSelect = new DataSet();
string sel = "select 员工号 from 员工表 where 条形码='" this.WorkerID.Text.Trim() "'";
this.CMD.CommandText = sel;
this.CMD.Connection = this.SC;
this.SDA.SelectCommand = this.CMD;
this.SC.Open();
this.SDA.Fill(DSSelect);
this.SC.Close();
if (DSSelect.Tables[0].Rows.Count > 0)
{
empNo = DSSelect.Tables[0].Rows[0][0].ToString();
}
else
{
this.WorkerID.Text = "";
return;
}
string CMDStr = "select 上班时间,下班时间, 出勤表.员工号 from 出勤表 left join 员工表 on 员工表.员工号 = 出勤表.员工号 where 员工表.条形码=" "'" this.WorkerID.Text.ToString().Trim() "'" " order by 上班时间 desc";
DSSelect.Clear();
this.CMD.CommandText = CMDStr;
this.CMD.Connection = this.SC;
this.SDA.SelectCommand = this.CMD;
this.SC.Open();
this.SDA.Fill(DSSelect);
this.SC.Close();
if (DSSelect.Tables[0].Rows.Count > 0&&DSSelect.Tables[0].Rows[0]["下班时间"].ToString() == "")
{
string stj1 = DSSelect.Tables[0].Rows[0]["上班时间"].ToString();
DateTime Check = Convert.ToDateTime(stj1);
/*int CheckHour = (Convert.ToInt32(DateTime.Now.Hour.ToString()) - Convert.ToInt32(Check.Hour.ToString())) * 3600;
int CheckMinute = (Convert.ToInt32(DateTime.Now.Minute.ToString()) - Convert.ToInt32(Check.Minute.ToString())) * 60;
int CheckSecond = (Convert.ToInt32(DateTime.Now.Second.ToString()) - Convert.ToInt32(Check.Second.ToString()));
int CheckTime = CheckHour CheckMinute CheckSecond;*/
int CheckTime = Convert.ToInt32(DiffDate(Check, DateTime.Now));
if (CheckTime < 3)
{
this.WorkerID.Text = "";
return;
}
else
{
//string stj=DateTime.Compare(DateTime.Now,Convert.ToDateTime(DSSelect.Tables[0].Rows[0][0])).ToString();
/* DateTime GoWorkTime = Convert.ToDateTime(stj1);
int HourDispersion = (Convert.ToInt32(DateTime.Now.Hour.ToString()) - Convert.ToInt32(GoWorkTime.Hour.ToString())) * 60;
int MinuteDispersion = (Convert.ToInt32(DateTime.Now.Minute.ToString()) - Convert.ToInt32(GoWorkTime.Minute.ToString()));
int TimeDispersion = HourDispersion MinuteDispersion;*/
int TimeDispersion = CheckTime / 60;
if (TimeDispersion > 20)
//if (TimeDispersion > 0)
{
string WorkTime = DateDiff(DateTime.Now, Convert.ToDateTime(DSSelect.Tables[0].Rows[0]["上班时间"])).ToString();
string str = "update 出勤表 set 下班时间=" "'" DateTime.Now.ToString().Trim() "'" ",工作时间='" WorkTime "' where 员工号=" "'" empNo "'" "and 上班时间=" "'" stj1 "'";
this.CMD.Connection = this.SC;
this.CMD.CommandText = str;
this.SC.Open();
if (this.CMD.ExecuteNonQuery() > 0)
{
this.WorkerID.Text = "";
this.SC.Close();
//GetOutWorkTable(sender, e);
GetOutWorkTable();
}
}
else
{
string DelStr = "delete from 出勤表 where 员工号=" "'" empNo "'" "and 上班时间=" "'" stj1 "'";
this.CMD.CommandText = DelStr;
this.CMD.Connection = this.SC;
this.SC.Open();
if (this.CMD.ExecuteNonQuery() > 0)
{
this.SC.Close();
//GetInWorkTable(sender, e);
GetInWorkTable();
//GetOutWorkTable(sender, e);
GetOutWorkTable();
this.WorkerID.Text = "";
}
}
}
}
else
{
string s = DateTime.Now.ToString();
string str = "insert into 出勤表 (员工号,上班时间) values('" empNo "','" DateTime.Now.ToString().Trim() "')";
this.CMD.Connection = this.SC;
this.CMD.CommandText = str;
this.SC.Open();
if (this.CMD.ExecuteNonQuery() > 0)
{
this.WorkerID.Text = "";
this.SC.Close();
//GetInWorkTable(sender, e);
// GetOutWorkTable(sender, e);
GetInWorkTable();
GetOutWorkTable();
}
}
}
}
catch
{
this.WorkerID.Text = "";
return;
}
}
#endregion
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论