gpt4 book ai didi

c# - 为什么我不能在 asp.net 上使用 ToShortDateString

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:54 27 4
gpt4 key购买 nike

I can see here...

我像这样使用 d.PODate.ToString() 来显示(见图片)我可以使用检查元素看到它...我只想显示日期而不是时间,当我尝试使用 d.PODate.ToString("d") 它给了我这样的错误 Method 'System.String ToString(System.String)' has no supported translation to SQLd.PODate.ToShortDateString() 一样得到这样的错误 Method 'System.String ToShortDateString()' has no supported translation to SQL.

编辑

这是我的 GET 方法

[HttpGet]
public Models.SysDataTablePager Get()
{
NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);

string sEcho = nvc["sEcho"].ToString();
int iDisplayStart = Convert.ToInt32(nvc["iDisplayStart"]);
string sSearch = nvc["sSearch"].ToString();
int iSortCol = Convert.ToInt32(nvc["iSortCol_0"]);
string sSortDir = nvc["sSortDir_0"].ToString();

var BranchId = Convert.ToInt32(((wfmis.Global)HttpContext.Current.ApplicationInstance).CurrentBranchId);

var Count = db.TrnPurchaseOrders.Where(d => d.MstUser.Id == secure.GetCurrentUser() &&
d.MstBranch.Id == BranchId).Count();

var PurchaseOrders = from d in db.TrnPurchaseOrders
where d.MstBranch.Id == BranchId &&
d.MstBranch.MstUser.Id == secure.GetCurrentUser()
select new Models.TrnPurchaseOrder
{
Id = d.Id,
PeriodId = d.PeriodId,
Period = d.MstPeriod.Period,
BranchId = d.BranchId,
Branch = d.MstBranch.Branch,
PONumber = d.PONumber,
POManualNumber = d.POManualNumber,
//PODate = d.PODate.ToShortDateString(),
PODate = d.PODate.ToShortDateString(), //<------
SupplierId = d.SupplierId,
Supplier = d.MstArticle.Article,
TermId = d.TermId,
Term = d.MstTerm.Term,
RequestNumber = d.RequestNumber,
//DateNeeded = d.DateNeeded.ToShortDateString(),
DateNeeded = d.DateNeeded.ToString(), //<------
Particulars = d.Particulars,
RequestedById = d.RequestedById == null ? 0 :
d.RequestedById.Value,
RequestedBy = d.MstUser.FullName,
IsClosed = d.IsClosed,
PreparedById = d.PreparedById,
PreparedBy = d.MstUser.FullName,
CheckedById = d.CheckedById,
CheckedBy = d.MstUser1.FullName,
ApprovedById = d.ApprovedById,
ApprovedBy = d.MstUser2.FullName,
IsLocked = d.IsLocked,
CreatedById = d.CreatedById,
CreatedBy = d.MstUser3.FullName,
//CreatedDateTime = d.CreatedDateTime.ToShortDateString(),
CreatedDateTime = d.CreatedDateTime.ToString(),
UpdatedById = d.UpdatedById,
UpdatedBy = d.MstUser4.FullName,
//UpdatedDateTime = d.UpdatedDateTime.ToShortDateString()
UpdatedDateTime = d.UpdatedDateTime.ToString()
};

switch (iSortCol)
{
case 2:
if (sSortDir == "asc") PurchaseOrders = PurchaseOrders.OrderBy(d => d.PODate).Skip(iDisplayStart).Take(10);
else PurchaseOrders = PurchaseOrders.OrderByDescending(d => d.PONumber).Skip(iDisplayStart).Take(10);
break;
case 3:
if (sSortDir == "asc") PurchaseOrders = PurchaseOrders.OrderBy(d => d.PONumber).Skip(iDisplayStart).Take(10);
else PurchaseOrders = PurchaseOrders.OrderByDescending(d => d.PODate).Skip(iDisplayStart).Take(10);
break;
case 4:
if (sSortDir == "asc") PurchaseOrders = PurchaseOrders.OrderBy(d => d.Supplier).Skip(iDisplayStart).Take(10);
else PurchaseOrders = PurchaseOrders.OrderByDescending(d => d.Supplier).Skip(iDisplayStart).Take(10);
break;
default:
PurchaseOrders = PurchaseOrders.Skip(iDisplayStart).Take(10);
break;
}

var PurchaseOrderPaged = new Models.SysDataTablePager();

PurchaseOrderPaged.sEcho = sEcho;
PurchaseOrderPaged.iTotalRecords = Count;
PurchaseOrderPaged.iTotalDisplayRecords = Count;
PurchaseOrderPaged.TrnPurchaseOrderData = PurchaseOrders.ToList();

return PurchaseOrderPaged;
}

编辑 2

我在数据库的 DateTime 上得到了这个... enter image description here

最佳答案

d 来自数据库;此时它不作为 .NET 对象存在。您要求 LINQ-to-SQL 在数据库中执行 .ToShortDateString() 操作,但没有转换函数。

如果您首先选择 d 值并在查询末尾使用 .ToList(),则您可以使用字符串格式化函数创建模型。

例如:

// original db query, still returns IQueryable.
var dbPurchaseOrders = from d in db.TrnPurchaseOrders
where d.MstBranch.Id == BranchId &&
d.MstBranch.MstUser.Id == secure.GetCurrentUser();

// change db query to local, in-memory object list
var localPurchaseOrders = PurchaseOrders.ToList();

// change the local db.TrnPurchaseOrders objects into your Models.TrnPurchaseOrder objects.
// kept the d variable because I'm too lazy to change all lines of your code.
var PurchaseOrders = from d in localPurchaseOrders
select new Models.TrnPurchaseOrder
{
Id = d.Id,
PeriodId = d.PeriodId,
Period = d.MstPeriod.Period,
BranchId = d.BranchId,
Branch = d.MstBranch.Branch,
PONumber = d.PONumber,
POManualNumber = d.POManualNumber,
//PODate = d.PODate.ToShortDateString(),
PODate = d.PODate.ToShortDateString(), //<------
SupplierId = d.SupplierId,
Supplier = d.MstArticle.Article,
TermId = d.TermId,
Term = d.MstTerm.Term,
RequestNumber = d.RequestNumber,
//DateNeeded = d.DateNeeded.ToShortDateString(),
DateNeeded = d.DateNeeded.ToString(), //<------
Particulars = d.Particulars,
RequestedById = d.RequestedById == null ? 0 : d.RequestedById.Value,
RequestedBy = d.MstUser.FullName,
IsClosed = d.IsClosed,
PreparedById = d.PreparedById,
PreparedBy = d.MstUser.FullName,
CheckedById = d.CheckedById,
CheckedBy = d.MstUser1.FullName,
ApprovedById = d.ApprovedById,
ApprovedBy = d.MstUser2.FullName,
IsLocked = d.IsLocked,
CreatedById = d.CreatedById,
CreatedBy = d.MstUser3.FullName,
//CreatedDateTime = d.CreatedDateTime.ToShortDateString(),
CreatedDateTime = d.CreatedDateTime.ToString(),
UpdatedById = d.UpdatedById,
UpdatedBy = d.MstUser4.FullName,
//UpdatedDateTime = d.UpdatedDateTime.ToShortDateString()
UpdatedDateTime = d.UpdatedDateTime.ToString()
};

关于c# - 为什么我不能在 asp.net 上使用 ToShortDateString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20394339/

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