相当新 C# 我需要转换一个值以向日期添加分钟,但它可以为空。我是这样做的:

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
{
    " - "
}

这是我得到的错误:

数据绑定:“System.Data.DataRowView”不支持名为:“2014 年 4 月 17 日 13:30:00”。

那么,支票是假的吗?或者错误在其他地方?

有帮助吗?

解决方案

尝试在需要带有日期或“ - ”的字符串的地方使用 aspx 中的代码

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

您所在的代码存在问题 DataBinder.Eval 传递带有日期但不带有属性名称的第二个参数字符串。

其他提示

假设“Eval”方法以字符串形式返回您的日期值,这是您想要做的吗?:Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute)这可能是您增加分钟数问题的答案。

但是,您收到的错误似乎表明存在不同的问题。您发布的代码似乎位于代码后面(?)。 DataBinder.Eval 方法通常在 aspx 中用于 Web 控件,例如 Repeater 控件。在这种情况下,您必须将第二个参数传递给 DataBinder.Eval 作为公共财产的名称。

为了清楚起见,您可以点击查看 这里

您可以在返回财产价值的同时添加分钟数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top