Pregunta

Bastante nuevo para C# Necesito emitir un valor para agregar minutos a una fecha, pero puede ser nulo.Así es como lo hago:

if(Eval("DUREE") != DBNull.Value)
{
    var duration = Convert.ToInt32(Eval("DUREE"));
    var date = Convert.ToDateTime(Eval("DATE"));
    var dateAsString = Convert.ToString(date.AddMinutes(duration));
    DataBinder.Eval(Container.DataItem, dateAsString, "{0:HH:mm}") 
}
else
{
    " - "
}

Aquí el error que me sale:

El enlace de datos :'System.Data.DataRowView' no incluye propiedades llamadas:'17/04/2014 13:30:00'.

Entonces, ¿el cheque es falso?¿O el error está en otra parte?

¿Fue útil?

Solución

Intente usar el código de uso en ASPX en su lugar donde necesita la cadena con fecha o "-"

<%# Eval("DUREE") == DBNull.Value || Eval("DATE") == DBNull.Value
    ? " - "
    : Convert.ToString(Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToInt32(Eval("DUREE")))), "{0:HH:mm}") %>

PROBLEMA EN SU CÓDIGO QUE EN DataBinder.Eval PASE LA SEGUNDA DE PARÁMETRO DE LA FECHA PERO NO NOMBRE DE LA PROPIEDAD.

Otros consejos

Suponiendo que el método 'Eval' le devuelve un valor de fecha en forma de cadena, ¿es esto lo que está intentando hacer?:Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute)Esa podría ser la respuesta a su problema para agregar minutos.

Sin embargo, el error que recibe parece indicar un problema diferente.El código que ha publicado parece estar en el código subyacente (?). DataBinder.Eval El método normalmente se usará en aspx para control web como control de repetidor.En cuyo caso tendrás que pasar el segundo parámetro a DataBinder.Eval como nombre de una Propiedad pública.

Puede consultar esto para mayor claridad, haga clic aquí

Puede agregar minutos mientras devuelve el valor de la propiedad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top