今天敲代码的时候,发现了一个小细节。。就是
if (!string.IsNullOrEmpty(Time.Text.Trim()))
BasicInfo.Time= DateTime.Parse(Time.Text.Trim());
else
BasicInfo.Time= null;------------------------------------这两种方法并不一样
CompanyBase.Time= Time.Text.Trim() == string.Empty ? null : Convert.ToDateTime(Time.Text.Trim()) CompanyBase.Time= Time.Text.Trim() == string.Empty ? DBNull.Value: Convert.ToDateTime(Time.Text.Trim())上面一种方法可以达到null的赋值,下面的方法却达到不了
会抛出一个ex。。求解, 另 time再实体类里面都是 可空类型···
if (!string.IsNullOrEmpty(Time.Text.Trim()))
BasicInfo.Time= DateTime.Parse(Time.Text.Trim());
else
BasicInfo.Time= null;------------------------------------这两种方法并不一样
CompanyBase.Time= Time.Text.Trim() == string.Empty ? null : Convert.ToDateTime(Time.Text.Trim()) CompanyBase.Time= Time.Text.Trim() == string.Empty ? DBNull.Value: Convert.ToDateTime(Time.Text.Trim())上面一种方法可以达到null的赋值,下面的方法却达到不了
会抛出一个ex。。求解, 另 time再实体类里面都是 可空类型···
冒号前后的值必须类型一致,很明显,在你的if...else中,if后面的是DateTime,不可为空的
而else后面的是DateTiem? ,是可以为空的.
第二种方法你少了一个类型转换
应该写做:CompanyBase.Time= string.IsNullOrEmpty(Time.Text.Trim()) ? (DateTime?)null : Convert.ToDateTime(Time.Text.Trim())
下面的改一下CompanyBase.Time= string.IsNullOrEmpty(Time.Text) ? null : Convert.ToDateTime(Time.Text.Trim());
你试试。再实体里面加个? 然后用
CompanyBase.Time= Time.Text.Trim() == string.Empty ? null : Convert.ToDateTime(Time.Text.Trim())
这方法赋值,看可否成功
如果Time.Text为null,楼主的第一种方法也是异常的,他调用了Time.Text.Trim()
BasicInfo.Time= Time.Text.Trim() == string.Empty ? (DateTime?)null : Convert.ToDateTime(Time.Text.Trim()); 这样写也会跑出异常,不行
if (Entity.EmplyeeHappyDay != null)
parameters[0].Time= Entity.Time;
else
parameters[0].Time= DBNull.Value;然后实体层那里一定要? 这里就ok了。。
以上那句我只看出有一个地方有可能异常
Time.Text.Trim()
如果Time.Text是null那么就会出现空引用。
但如果Time是个控件,应该不会出现Time.Text为null你最好把上下文发出来
这个就是上下文·
time就是textbox。我简略了而已