鉴于此表达式:
var q = (from c in db.ContattiTitoliStudio
where ...
orderby c.Data descending
select new
{
c.ID,
Date = c.Data.ToString("MM dd, YYYY"),
});
c.Data is nullable
,但也有一个不可为空的var是相同的:
“...No overload for method 'ToString' takes 1 arguments...
”
我尝试了nullable
,而不是可空,(c.Data!=null)...
,String.Format
,DateTime.Parse
等等...但我无法格式化c.Date
我想要的方式。
在SQL Server中,我使用datetime
作为类型。
如果我使用普通Date = c.Date
,则会显示为“01/01/2011 0.0.00”。
答案 0 :(得分:1)
使用 Nullable(即??运算符) C#中存在的操作
var q = (from c in db.ContattiTitoliStudio
where ...
orderby c.Data descending
select new
{
c.ID,
Date = (c.Data ?? DateTime.MinValue).ToString("MM dd, YYYY"),
});
注意:当c.Data的值为null时使用DateTime.MinValue,用于避免null
答案 1 :(得分:1)
你试过这个吗?
Date = c.Data.HasValue ? c.Data.Value.ToString("MM dd, YYYY") : string.Empty
答案 2 :(得分:1)
好的,最后这是解决方案:
var test= from e in db.Employees.ToList() select new {Time= e.Date.ToString()};
来自msdn论坛的:
答案 3 :(得分:0)
您没有告诉我们,但我猜测ContattiTitoliStudio.Data
是Nullable<DateTime>
。在这种情况下,你应该说
Date = c.Data.HasValue ? "null" : c.Data.Value.ToString("MM dd, YYYY")