1、原由:数据库操作,插入 Time(0)字段空值时,处理方法求解。
2、为了不出现Datetime溢出,据说要使用System.Data.SqlTypes.SqlDateTime.MinValue。
3、数据库
PatrolDuty(
DutyId nvarchar(50) PK,
StartTime Time(0)
)
4、实体类
public class PatrolDuty
{
public string DutyId {get;set;}
public DateTime StartTime {get;set;}
}
5、Dao 操作中的自定义方法
/// <summary>
/// 业务对象填充实体对象公共方法
/// </summary>
private SqlParameter[] FillParameter(PatrolDuty p)
{
try
{
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@DutyId",(p.DutyId==null)?Convert.ToString(DBNull.Value):p.DutyId),
new SqlParameter("@StartTime",(p.StartTime==DateTime.MinValue)?System.Data.SqlTypes.SqlDateTime.MinValue:p.StartTime.ToString("t")),
};
return paras;
}
catch (Exception e)
{
throw e;
}
}
6、System.Data.SqlTypes.SqlDateTime.MinValue如何只得到时间值 , 例如 12:30:20
1.因为没有只时间这个说法.时间类型都是年月日时分秒
2.只想要时分秒那就看数据库有没有对应的类型比如time
3.然后你要找.net中对应time的类型.肯定不会是datetime
4.一般初始化都插入当前时间.或者给时间赋值:"1/1/1900 00:00:00"
你这写法也是醉了。。。
DateTime.Now.TimeOfDay
“System.Data.SqlTypes.SqlTypeException”类型的异常在 中发生,但未在用户代码中进行处理
其他信息: SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
@WesternWind: 定义一个timespan呀