5 个解决方案
#1
没用过你说的那个控件
我感觉你插入数据库的值是 ""..
我感觉你插入数据库的值是 ""..
#2
空值和null好像是有区别的
#3
null 与 没有数值 是有分别的。
所谓不允许为空就是要有值。
所谓不允许为空就是要有值。
#4
以下是我做的试验,编译时报错:
1、问题一
第一种情况:this.dateTimePicker1.Value = null;
error report:无法将 NULL 转换成“System.DateTime”,因为它是一种数值类型
第二种情况:this.dateTimePicker1.Value = "";
error report:无法将类型“string”隐式转换为“System.DateTime”
第三种情况:this.dateTimePicker1.Value = System.DBNull.Value;
error report:无法将类型“System.DBNull”隐式转换为“System.DateTime”
这三种情况都属于类型转换引发异常,故编译出错。也就说明了你上面提出的“当往数据库insert数据时,如果不包含DateTimePicker的value时,插入空的值时会报错”的问题所在。
问题二:
“但当加入DateTimePicker的value时,却可以插入空值到数据库中?”DateTimePicker的value得到的是一个DateTime类型的值。你数据库对应的字段也是时间类型,所以insert不会出错了。
还有,你用DateTimePicker的value时,怎么会取到空值,这个控件默认是系统时间啊????
1、问题一
第一种情况:this.dateTimePicker1.Value = null;
error report:无法将 NULL 转换成“System.DateTime”,因为它是一种数值类型
第二种情况:this.dateTimePicker1.Value = "";
error report:无法将类型“string”隐式转换为“System.DateTime”
第三种情况:this.dateTimePicker1.Value = System.DBNull.Value;
error report:无法将类型“System.DBNull”隐式转换为“System.DateTime”
这三种情况都属于类型转换引发异常,故编译出错。也就说明了你上面提出的“当往数据库insert数据时,如果不包含DateTimePicker的value时,插入空的值时会报错”的问题所在。
问题二:
“但当加入DateTimePicker的value时,却可以插入空值到数据库中?”DateTimePicker的value得到的是一个DateTime类型的值。你数据库对应的字段也是时间类型,所以insert不会出错了。
还有,你用DateTimePicker的value时,怎么会取到空值,这个控件默认是系统时间啊????
#5
初始化:
this.dateTimePicker1.Value = Convert.ToDateTime("9999-12-31 00:00:00");
存数据库的时候:
if(this.dateTimePicker1.Value == Convert.ToDateTime("9999-12-31 00:00:00"))
{
//。。。。。
........= DBNull.Value;
//。。。。。。
}
else
{
//。。。。。
........= this.dateTimePicker1.Value;
//。。。。。。
}
this.dateTimePicker1.Value = Convert.ToDateTime("9999-12-31 00:00:00");
存数据库的时候:
if(this.dateTimePicker1.Value == Convert.ToDateTime("9999-12-31 00:00:00"))
{
//。。。。。
........= DBNull.Value;
//。。。。。。
}
else
{
//。。。。。
........= this.dateTimePicker1.Value;
//。。。。。。
}
#1
没用过你说的那个控件
我感觉你插入数据库的值是 ""..
我感觉你插入数据库的值是 ""..
#2
空值和null好像是有区别的
#3
null 与 没有数值 是有分别的。
所谓不允许为空就是要有值。
所谓不允许为空就是要有值。
#4
以下是我做的试验,编译时报错:
1、问题一
第一种情况:this.dateTimePicker1.Value = null;
error report:无法将 NULL 转换成“System.DateTime”,因为它是一种数值类型
第二种情况:this.dateTimePicker1.Value = "";
error report:无法将类型“string”隐式转换为“System.DateTime”
第三种情况:this.dateTimePicker1.Value = System.DBNull.Value;
error report:无法将类型“System.DBNull”隐式转换为“System.DateTime”
这三种情况都属于类型转换引发异常,故编译出错。也就说明了你上面提出的“当往数据库insert数据时,如果不包含DateTimePicker的value时,插入空的值时会报错”的问题所在。
问题二:
“但当加入DateTimePicker的value时,却可以插入空值到数据库中?”DateTimePicker的value得到的是一个DateTime类型的值。你数据库对应的字段也是时间类型,所以insert不会出错了。
还有,你用DateTimePicker的value时,怎么会取到空值,这个控件默认是系统时间啊????
1、问题一
第一种情况:this.dateTimePicker1.Value = null;
error report:无法将 NULL 转换成“System.DateTime”,因为它是一种数值类型
第二种情况:this.dateTimePicker1.Value = "";
error report:无法将类型“string”隐式转换为“System.DateTime”
第三种情况:this.dateTimePicker1.Value = System.DBNull.Value;
error report:无法将类型“System.DBNull”隐式转换为“System.DateTime”
这三种情况都属于类型转换引发异常,故编译出错。也就说明了你上面提出的“当往数据库insert数据时,如果不包含DateTimePicker的value时,插入空的值时会报错”的问题所在。
问题二:
“但当加入DateTimePicker的value时,却可以插入空值到数据库中?”DateTimePicker的value得到的是一个DateTime类型的值。你数据库对应的字段也是时间类型,所以insert不会出错了。
还有,你用DateTimePicker的value时,怎么会取到空值,这个控件默认是系统时间啊????
#5
初始化:
this.dateTimePicker1.Value = Convert.ToDateTime("9999-12-31 00:00:00");
存数据库的时候:
if(this.dateTimePicker1.Value == Convert.ToDateTime("9999-12-31 00:00:00"))
{
//。。。。。
........= DBNull.Value;
//。。。。。。
}
else
{
//。。。。。
........= this.dateTimePicker1.Value;
//。。。。。。
}
this.dateTimePicker1.Value = Convert.ToDateTime("9999-12-31 00:00:00");
存数据库的时候:
if(this.dateTimePicker1.Value == Convert.ToDateTime("9999-12-31 00:00:00"))
{
//。。。。。
........= DBNull.Value;
//。。。。。。
}
else
{
//。。。。。
........= this.dateTimePicker1.Value;
//。。。。。。
}