C# DateTimePicker控件的使用简介

在C# DateTimePicker控件中很有可能会出现INSERT INTO语句出错的问题,这是因为对dateTimerPicker1.Value 等的用法不了解的缘故。

本人在做设计时,要用C# DateTimePicker控件取日期,插入到一个DateTime属性的ACCESS表的列中,同时要把两个取值相差得出天数,插入到一个数据型列中,但是在编写过程中总是出错,我的代码如下:

  1. string instr1 = "insert into Leave(eNo,eName,LeaveType,StartDay,EndDay,Days) 
  2. values(''" + stNo + "'',''" + stName + "'',''" + textBox5.Text + "'',''" + 
  3. dateTimePicker1.Value.Date.ToShortDateString() + "'',''" + dateTimePicker2.Value.Date.ToShortDateString() + "''," + Convert.ToInt32(dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).ToString() + ")";  
  4.                     string flag1 = DB.insert(instr1);  
  5.                     if ( flag1 == "1")  
  6.                     ...{  
  7.                         MessageBox.Show("考勤登记成功!");  
  8.                     }  
  9.                     else 
  10.                     ...{  
  11.                         MessageBox.Show("考勤登记失败!");  
  12.                     } 

但是系统总是提示INSERT INTO语句出错,无法把一个无限长的数据转换成整型.怎么回事呢?

有MESSAGEBOX把instr1的值给显示了一下,发现两个C# dataTimePicker控件相减的值为:天数 00:00:00 ,怪不得会出错,于是我的原代码中的dateTimePicker1.value.Date-dateTimeRicker2.Value.Date改变为(dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).Substring (0,2),则执行成功了!于的我把DateTimePicker的用法总结如下:

dateTimerPicker1.Value  获取所选择的日期/时间

dateTimerPicker1.Text  获取控件显示的"XXXX年XX月XX日"

dateTimerPicker1.Value.Date 获取当前控件把选取的短日期

这些都是常用的,其他的属性可以查看MSDN上面的说明,对了,要获取两个日期控件相差的值,也就是两个日期的相差天数,代码应如下写:(dateTimePicker2.Value.Date - dateTimePicker1.Value.Date).Substring (0,2)。

这些都是我个人的一些心得,写出来与大家共享,不足之处望大家批评指正!

你可能感兴趣的:(datetimepicker)