gpt4 book ai didi

c# - 当它是一个 toshortdatestring 时,Linq 排序日期

转载 作者:行者123 更新时间:2023-11-30 20:04:45 25 4
gpt4 key购买 nike

当我已经从 linq 带回一个日期并将其转换为短日期字符串时,我正在尝试使用 linq 按日期排序:

var NOVs = from n in db.CT_NOVs
join i in db.CT_Inspectors on n.ARBInspectorID equals i.CTInspectorID
join v in db.CT_ViolationTypes on n.ViolationTypeID equals v.ViolationTypeID
join t in db.CT_Tanks on n.CargoTankID equals t.CargoTankID
join c in db.CT_Companies on t.CompanyID equals c.CompanyID
select new
{
n.NOVID,
n.NOVNumber,
NOVDate = n.NOVDate.Value.ToShortDateString(),
ARBInspectorFirstName = i.FirstName,
ARBInspectorLastName = i.LastName,
v.ViolationName,
t.CargoTankID,
c.CompanyName
};

这里是我尝试按日期排序的地方,但它给了我一个错误,因为我将日期时间转换为短日期字符串:

if (column == "NOVDate")
{
if (sortDirection == "ascending")
NOVs = NOVs.OrderBy(b => Convert.ToDateTime(b.NOVDate));
else
NOVs = NOVs.OrderByDescending(b => Convert.ToDateTime(b.NOVDate));
}

关于如何按 NOVDate 排序的任何线索?

最佳答案

为什么不将其保留为完整的 DateTime 对象,并在将其显示给用户之前立即将其转换为 ShortDateString?我通常尝试保留对象的原始格式,并在最后一秒将它们转换为显示给用户。这也有助于将数据层与表示层分离,即让表示层决定如何向用户显示日期;您的数据层不应该真正关心。

来自评论:

由于您使用的是 <asp:BoundField>元素与您的 GridView,您可以使用 DataFormatString属性让 GridView 自动格式化它。

看起来像使用DataFormatString="{0:d}"应该做的伎俩。 (感谢 Gromer !)

关于c# - 当它是一个 toshortdatestring 时,Linq 排序日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12484947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com