我正在尝试使用 linq 在 sqlserver 中插入一个 DateTime 值。csharp 端的 DateTime 值可能为空。sqlserver 中对应的字段是可以为空的日期时间字段。以下是我的代码:
using (var dataContext = GetDataContext())
{
DateTime dateTime;
var combinedWorkBasket = new CombinedWorkBasket()
{
FirstName = combinedWorkbasketData.FirstName,
LastName = combinedWorkbasketData.LastName,
Address1 = combinedWorkbasketData.Address1,
RetirementDate = Convert.ToDateTime(combinedWorkbasketData.RetirementDate),
};
dataContext.CombinedWorkBaskets.InsertOnSubmit(combinedWorkBasket);
dataContext.SubmitChanges();
}
当 combineWorkbasketData.RetirementDate 碰巧为 null 时,它是一个字符串值,可以是有效日期或 null,然后 sqlserver 会抛出错误,指出日期应该在范围内。当 combineWorkbasketData.RetirementDate 恰好为空时,Convert.ToDateTime(combinedWorkbasketData.RetirementDate) 转换为一些无效数据值。我尝试了以下,仍然是同样的问题。
RetirementDate = DateTime.TryParse(combinedWorkbasketData.RetirementDate, out temp) ? Convert.ToDateTime(combinedWorkbasketData.RetirementDate) : Convert.ToDateTime(null)
我只想完成以下操作:当 combineWorkbasketData.RetirementDate 是有效日期时插入 RetirementDate,否则不要插入它,而是插入其他值,例如 Firstname 等
谢谢