C# Net正在为您的datacolumn分配不同的名称。只需检查它在调试模式下分配的名称,并替换为上面语句中的名称。按照您的操作,但我得到此异常“异常已由调用的目标引发”。您可以发布详细的异常堆栈跟踪吗?您甚至可以尝试:tp+=Convert.ToDecima

C# Net正在为您的datacolumn分配不同的名称。只需检查它在调试模式下分配的名称,并替换为上面语句中的名称。按照您的操作,但我得到此异常“异常已由调用的目标引发”。您可以发布详细的异常堆栈跟踪吗?您甚至可以尝试:tp+=Convert.ToDecima,c#,asp.net,C#,Asp.net,Net正在为您的datacolumn分配不同的名称。只需检查它在调试模式下分配的名称,并替换为上面语句中的名称。按照您的操作,但我得到此异常“异常已由调用的目标引发”。您可以发布详细的异常堆栈跟踪吗?您甚至可以尝试:tp+=Convert.ToDecimal((DataRowView)e.Row.DataItem).Row[“[Duration(HH:MM)]”。但它假定您使用的是Datatable或Dataset作为数据源。更新了问题,并在那里提到了堆栈跟踪。似乎.Net正在为您的dataco


Net正在为您的datacolumn分配不同的名称。只需检查它在调试模式下分配的名称,并替换为上面语句中的名称。按照您的操作,但我得到此异常“异常已由调用的目标引发”。您可以发布详细的异常堆栈跟踪吗?您甚至可以尝试:tp+=Convert.ToDecimal((DataRowView)e.Row.DataItem).Row[“[Duration(HH:MM)]”。但它假定您使用的是Datatable或Dataset作为数据源。更新了问题,并在那里提到了堆栈跟踪。似乎.Net正在为您的datacolumn分配一些不同的名称。只需检查它在调试模式下分配的名称,并替换为上面语句中的名称。是的,实际上我正在寻找此名称。现在我可以了在页脚中填充总数。非常感谢。是的,实际上这是我正在寻找的。现在我可以在页脚中填充总数。非常感谢
create procedure St_Proc_GetUserReportforCurrentDayTask                  
@userID int                  
as                  
    Begin                  
        set NoCount on;                  
        DECLARE @TODAY DATE                    
        SET @TODAY = CONVERT(VARCHAR(10), GETDATE(), 111)                  
        select  CONVERT(VARCHAR,production.CalendarDate,101) + RIGHT (CONVERT(VARCHAR,production.CalendarDate , 100 ) ,7) as Date,                   
        RegionAndProjectInfo.RegionProjectName as Region ,                  
        County.CountyName as County,                  
        WorkType.WorkTypeName as WorkType,                  
        Task.TaskName as Task,      
        Production.VolumeProcessed as 'Volumes Processed',                  
        Production.TimeSpent as 'Duration(HH:MM)'                  
        from Production                   
        inner join RegionAndProjectInfo                  
        on                  
        RegionAndProjectInfo.RegionProjectID=Production.RegionProjectID                  
        inner join County                  
        on                   
        County.CountyID=Production.CountyID                  
        inner join WorkType                  
        on                  
        WorkType.WorkTypeID=Production.WorkTypeID                  
        inner join Task                  
        on                  
        Task.TaskID=Production.TaskID                  
        where Production.UserID=@userID and CalendarDate >= @TODAY                  
    End 
private void BindGridOnPageLoad()
    {
        _production = new EmployeeQuotientCL.Production();
        _userEcode = Convert.ToString(Session["UserID"]);
        int _userID = _production.GetUserIDFromDB(_userEcode);
        dsUserTaskDetails = _production.GetTabularUsertaskDetails(_userID);
        BindGridView(dsUserTaskDetails);
    }
<div id="gridview">
            <asp:GridView ID="GVUserEnteredDetails" runat="server" ShowFooter="true" CssClass="mGrid"  CellSpacing="2"   onselectedindexchanged="GVUserEnteredDetails_SelectedIndexChanged" onrowdatabound="GridView1_RowDataBound">                  
            </asp:GridView>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            tp += Convert.ToDecimal(((DataRowView)e.Row.DataItem).Row["[Duration(HH:MM)]"]);
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            e.Row.Cells[0].Text = "Total Hours : ";
            e.Row.Cells[1].Text = tp.ToString("c");
            e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Right;
            e.Row.Cells[1].HorizontalAlign = HorizontalAlign.Right;
            e.Row.Font.Bold = true;

        }
    }
 tp += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "[Duration(HH:MM)]"));
TimeSpan ts = DateTime.ParseExact("02:30", "HH:mm", CultureInfo.InvariantCulture).TimeOfDay;
// instead of 02:30 you would have the string from your column passed in

// you can add up the values in this fashion
ts.Add(DateTime.ParseExact("08:30", "HH:mm", CultureInfo.InvariantCulture).TimeOfDay);