C# 使用动态计算将列添加到DataGridView
是否可以在C# 使用动态计算将列添加到DataGridView,c#,datagridview,C#,Datagridview,是否可以在DataGridView中添加一列以动态计算值 我有一个DataGridView由LINQ查询(ToList)填充。我使用的是EF6(数据库优先) 我需要添加一个未绑定到查询集合的列,用于计算两个日期之间的天数 这是我的DataGridView填充列表: public class Recl { public int ID { get; set; } public string Concelho { get; set; } publ
DataGridView
中添加一列以动态计算值
我有一个DataGridView
由LINQ
查询(ToList)填充。我使用的是EF6
(数据库优先)
我需要添加一个未绑定到查询集合的列,用于计算两个日期之间的天数
这是我的DataGridView
填充列表:
public class Recl
{
public int ID { get; set; }
public string Concelho { get; set; }
public string Entidade { get; set; }
public string LC { get; set; }
public string Classificacao { get; set; }
public string TipoR { get; set; }
public string TipoE { get; set; }
public string Identificador { get; set; }
public string Estado { get; set; }
public decimal? Custos { get; set; }
public string Descricao { get; set; }
public DateTime DataR { get; set; }
public DateTime DataE { get; set; }
public DateTime? DataRespostaEE { get; set; }
public DateTime? DataRespostaC { get; set; }
}
public IEnumerable<Recl> LoadData()
{
var ctx = new IWMJEntities();
var fillrecl = (from p in ctx.tblRecl.AsQueryable()
join c in ctx.tblConc on p.ConcID equals c.ConcID
join e in ctx.tblEnt on p.EntID equals e.EntID
join ex in ctx.tblLC on p.LCID equals ex.LCID
join cl in ctx.tblClassificacao on p.ClassificacaoID equals cl.ClassificacaoID
join tp in ctx.tblTipoR on p.TipoRID equals tp.TipoRID
join te in ctx.tblTipoE on p.TipoEID equals te.TipoEID
select new Recl
{
ID = p.ReclID,
Concelho = c.NomeConcelho,
Entidade = e.Nome,
LC = ex.Codigo,
Classificacao = cl.Classificacao,
TipoR = tp.TipoR,
TipoE = te.TipoE,
Identificador = p.Identificador,
Estado = p.Estado,
Custos = p.Custos,
DataR = p.DataR,
DataE = p.DataE,
DataRespostaEE = p.DataRespostaEmpresa,
DataRespostaCliente = p.DataRespostaCliente
}).ToList();
return fillrecl;
}
如何再添加一列(天),计算DateTime.Now
和DataE
之间的差异(以天为单位)
我把这个新的列放在代码的什么地方?向
Recl
类添加一个属性(比如DifferenceInDays
),然后在select
子句中添加DifferenceInDays=(DateTime.Now-p.DataE)。Days
只需向类添加一个属性:
public class Recl
{
...
public DateTime DataE { get; set; }
public TimeSpan DaysDifference { get { return DateTime.Now - DataE; } }
}
谢谢,但是一个简单的日期减法会导致DbarithmetricExpression参数的错误。所以我在Recl类“Days”中添加了一个属性,并在select查询中使用了(int)DbFunctions.DiffDays(p.DataE,DateTime.Now)。这很有效。谢谢
public class Recl
{
...
public DateTime DataE { get; set; }
public TimeSpan DaysDifference { get { return DateTime.Now - DataE; } }
}