第一种写法
row["补货时间"] = !补货时间.Checked ? DBNull.Value : 补货时间.Text;
第二种写法
if (!补货时间.Checked)
{
row["补货时间"] = DBNull.Value;
}
else
{
row["补货时间"] = 补货时间.Text;
}
第一种写法就报错,报错在dbnull.value位置,第二种就能通过,这是为什么呢,两种写法应该是没有区别的呀
row["补货时间"] = !补货时间.Checked ? DBNull.Value : 补货时间.Text;
第二种写法
if (!补货时间.Checked)
{
row["补货时间"] = DBNull.Value;
}
else
{
row["补货时间"] = 补货时间.Text;
}
第一种写法就报错,报错在dbnull.value位置,第二种就能通过,这是为什么呢,两种写法应该是没有区别的呀
row["补货时间"] = !补货时间.Checked ? DBNull.Value : 补货时间.Text;
这种写法要求DBNull.Value 、补货时间.Text类型一致,可能是它们数据类型不一致吧
row["补货时间"] 是可以存放object类型的数据,但是 DBNull.Value 和 补货时间.Text 的类型不一样,报错第二种,row["补货时间"]江堰市是可以存放object类型的数据 ,所以不报错
!补货时间.Checked ? row["补货时间"]=DBNull.Value : row["补货时间"]=补货时间.Text;
这个用法你理解错了!举个简单的例子!
i>0?i=1:i=0;这条语句是和
if(i>0)
{
i=1;
}else{
i=0;
}是等价的!
还有,就是判断条件如果是==true,那么你就写清楚,别“非”来“非”去的,很不直观。要是养成这样的习惯,你写其它的判断条件也是一样,以后看起来会很晕的