• 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         }

  • 相关阅读:
    【题解】P3388 【模板】割点(割顶)
    【题解】T156527 直角三角形
    【题解】T156526 各数字之和
    【题解】P5318 【深基18.例3】查找文献
    数据结构:邻接表
    【题解】P3387 【模板】缩点
    全网最最详细!一文讲懂Tarjan算法求强连通分量&缩点
    vue组件间通信
    vue实现头像上传
    解读JavaScript中的Hoisting机制(js变量声明提升机制)
  • 原文地址:https://www.cnblogs.com/bkycjj/p/3026278.html
Copyright © 2020-2023  润新知