我正在尝试将日期格式更改为MM:yyyy:dd(2018年10月24日),我尝试了所有我知道的方法,但是它不起作用...这是我的代码(我是许多方法之一上线):
var data = (from o in db.tbPATxns
join p in db.providers on o.providerid equals p.providertin
join a in db.Endorsements on o.panumber equals a.panumber
join b in db.members on o.IID equals b.legacycode
join c in db.proceduredatas on a.proccode equals c.procedurecode
where c.proceduredesc.ToLower().Contains("admission")
select new
{
o.panumber,
b.legacycode,
b.lastname,
b.firstname,
b.phone1,
p.providername,
a.txndate.ToString("MMMM yyyy, dd")
});
RadGrid1.DataSource = data.ToList();
RadGrid1.DataBind();
该查询假设是从数据库中获取所有必填字段,所以我想要将日期时间从数据库转换为(MMMM yyyy,dd),但是toString
返回2类错误。
(1)
方法'ToString'的重载不接受1个参数
(2)
无效的匿名类型成员声明符。匿名类型成员必须 通过成员分配,简单名称或成员访问权限进行声明。
如果我删除ToString
,输出将为
6/21/2018 4:40:15 PM
答案 0 :(得分:0)
您可能打算使用ToString()方法(注意大写字母T)。 另外,如果您的txndate可为空,则添加空条件运算符:
var data = (from o in db.tbPATxns
join p in db.providers on o.providerid equals p.providertin
join a in db.Endorsements on o.panumber equals a.panumber
join b in db.members on o.IID equals b.legacycode
join c in db.proceduredatas on a.proccode equals c.procedurecode
where c.proceduredesc.ToLower().Contains("admission")
select new
{
o.panumber,
b.legacycode,
b.lastname,
b.firstname,
b.phone1,
p.providername,
a.txndate?.ToString("MMMM yyyy, dd")
});
答案 1 :(得分:0)
第一个错误表明a.txndate
不是DateTime
。也许是Tim所建议的Nullable<DateTime>
。第二条错误消息意味着您必须为该属性提供一个名称,因为c#编译器不会从该值推断出它-因此,假设Nullable<DateTime>
可以执行以下操作(查询被省略,因为它与错误无关):
select new
{
o.panumber,
b.legacycode,
b.lastname,
b.firstname,
b.phone1,
p.providername,
txndate = a.txndate == null ? "" : a.txndate.Value.ToString("MMMM yyyy, dd")
}
答案 2 :(得分:0)
您可以尝试通过table
来获取记录,然后将日期格式应用于预计的记录,例如
AsEnumerable