Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据asp.net Gridview中的DateDiff值显示字符串?_Asp.net_Sql_Datetime_Gridview_Datediff - Fatal编程技术网

如何根据asp.net Gridview中的DateDiff值显示字符串?

如何根据asp.net Gridview中的DateDiff值显示字符串?,asp.net,sql,datetime,gridview,datediff,Asp.net,Sql,Datetime,Gridview,Datediff,我有一个查询要显示任务完成日期和任务截止日期的DATEDIFF。我想显示任务是否及时完成,并根据日期差的值将结果显示为“及时完成”和“未及时完成” select memname, CONVERT(nvarchar, DATEDIFF(d,CompleteDate,FreeTrialTaskMst.Enddate)) AS Difference from member 在这里,如果按时完成,我得到值>=0 如何操作?最简单、最易读的方法可能是使用RowDataBound: p

我有一个查询要显示任务完成日期和任务截止日期的
DATEDIFF
。我想显示任务是否及时完成,并根据日期差的值将结果显示为“及时完成”和“未及时完成”

select memname, 
      CONVERT(nvarchar, DATEDIFF(d,CompleteDate,FreeTrialTaskMst.Enddate)) AS Difference
  from member
在这里,如果按时完成,我得到
值>=0

如何操作?

最简单、最易读的方法可能是使用
RowDataBound

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row;
        Label lblDeadLine = (Label)e.Row.FindControl("lblDeadLine");
        int deadLine = int.Parse(row.Field<String>("DeadLine"));
        if(deadLine < 0)
            lblDeadLine.Text = "Not Completed in Time";
        else
            lblDeadLine.Text = "Completed in Time";
    }
}
受保护的无效gridview1\u行数据绑定(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{
DataRow row=((DataRowView)e.row.DataItem).row;
Label lblDeadLine=(Label)e.Row.FindControl(“lblDeadLine”);
int deadLine=int.Parse(行字段(“deadLine”);
如果(截止日期<0)
lblDeadLine.Text=“未及时完成”;
其他的
lblDeadLine.Text=“及时完成”;
}
}
但我建议首先也按照sql执行(
选择CASE WHEN…


顺便问一下,为什么要将
int
值从
DATEDIFF
转换为
nvarchar

非常感谢@vikram,这对我很有帮助。
select memname, 
    (case when  DATEDIFF(d,CompleteDate,FreeTrialTaskMst.Enddate) >0 then 'completed'
else 'Not Complete' end) as  DeadLine
  from member
select memname, 
    (case when  DATEDIFF(d,CompleteDate,FreeTrialTaskMst.Enddate) >0 then 'completed'
else 'Not Complete' end) as  DeadLine
  from member