datagridview中读取数据判断+考勤每月上班天数判断

数据判断:

从datagridview中读取,有些数据是NULL,有些是空字符串“ ”

               int a = 0;
               int.TryParse(row.Cells["LateNum"].Value.ToString(), out a);

这时候可以判断里面的值是否是空了,不管原来是null还是空字符串都是0

 

首先在数据库中建表,记录这个月的工作日及休息日(周末算休息日),如果设置的话,那么可以加入工作日中。

datagridview无记录反馈
            if ((dataGridView1.DataSource as DataTable).Rows.Count == 0)
            {
                MessageBox.Show("暂无此月份记录");
                return;
            }

 

 1 //将当月工作日及休息日写入数据库
 2  private void button1_Click(object sender, EventArgs e)
 3         {
 4             DateTime dt = DateTime.Now;  //当前时间
 5             DateTime startMonth = dt.AddDays(1 - dt.Day);  //本月月初
 6             DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);  //本月月末 
 7             int c_monthDays = endMonth.Day;//这个月有几天
 8             string YearmonthPresent = DateTime.Today.ToString("yyyy-MM");
 9             SqlHelper sqlHelper = new SqlHelper();
10             int count = 0;
11             for (int i = 0; i < c_monthDays; i++)//从dt1开始一天天加,判断临时的日期值是不是星期六或星期天,如果既不是星期六,也不是星期天则该天为工作日
12             {
13                 DateTime dtTemp = startMonth.Date.AddDays(i);
14                 if ((dtTemp.DayOfWeek == System.DayOfWeek.Sunday) || (dtTemp.DayOfWeek == System.DayOfWeek.Saturday))//如果日期为周六或周日,那么存进为休息日
15                 {
16                     //存为休息日
17                     sqlHelper.bDateType("休息", YearmonthPresent,dtTemp.Date);
18                     
19                 }
20                 else
21                 {
22                     //存为工作日
23                     sqlHelper.bDateType("工作日", YearmonthPresent, dtTemp.Date);
24 
25                 }
26                 count += 1;
27                 
28             }
29             if (count ==c_monthDays)
30             {
31                 MessageBox.Show("成功");
32             }
33             else
34             {
35                 MessageBox.Show("失败");
36             }
37 
38 
39 
40         }
数据层连接
 1 //设置本月工作日、假节日
 2         public bool bDateType(string DateType, string YearmonthPresent, DateTime Date)
 3         {
 4             string sql = string.Format("INSERT INTO DateTable(DateType,YearmonthPresent,Date)VALUES(@DateType,@YearmonthPresent,@Date)");
 5             DataConn q = new DataConn(conStr);
 6             ArrayList paramlist = new ArrayList();
 7             paramlist.Add(q.CreateParameter("@DateType", DateType, DbType.String, 50));
 8             paramlist.Add(q.CreateParameter("@YearmonthPresent", YearmonthPresent, DbType.String, 50));
 9             paramlist.Add(q.CreateParameter("@Date", Date, DbType.Date, 4));
10             IDataParameter[] param = (IDataParameter[])paramlist.ToArray(typeof(IDataParameter));
11             object dt = q.ExecuteNonQuery(sql, param);
12             int it = Convert.ToInt32(dt);
13             return it > 0;
14         }

 

 

 

 

 

 

 

posted @ 2013-04-17 21:21  Jimmy_5  阅读(298)  评论(0编辑  收藏  举报