数据判断:
从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 }