Fix- DataBinding: 'System.Data.DataRowView' does not contain a property with the name
<pre><code>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 &gt;= @TODAY                  
    End 
</code></pre>

<p>This is my stored procedure and i am executing this stored procedure and saving the result in a dataset and then binding a grid with this dataset.</p>

<pre><code>private void BindGridOnPageLoad()
    {
        _production = new EmployeeQuotientCL.Production();
        _userEcode = Convert.ToString(Session["UserID"]);
        int _userID = _production.GetUserIDFromDB(_userEcode);
        dsUserTaskDetails = _production.GetTabularUsertaskDetails(_userID);
        BindGridView(dsUserTaskDetails);
    }
</code></pre>

<p>Up to here every thing is fine .Then i got requirement to show Duration(HH:MM) total in the footer of the grid view.I had added following code in the page:-</p>

<pre><code>&lt;div id="gridview"&gt;
            &lt;asp:GridView ID="GVUserEnteredDetails" runat="server" ShowFooter="true" CssClass="mGrid"  CellSpacing="2"   onselectedindexchanged="GVUserEnteredDetails_SelectedIndexChanged" onrowdatabound="GridView1_RowDataBound"&gt;                  
            &lt;/asp:GridView&gt;
</code></pre>

<p></p>

<pre><code>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;

        }
    }
</code></pre>

<p>But when i am debugging i m getting this error:- "DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Duration'." What the mistake i m doing and how to fix it? Any suggestion and help will be helpful for me.</p>

<p>Stack Trace:- </p>

<blockquote>
  <p>[ArgumentException: Column '[Duration(HH:MM)]' does not belong to table Table.]
  System.Data.DataRow.GetDataColumn(String columnName) +2124943
  System.Data.DataRow.get_Item(String columnName) +13
  EQ.Associates.Production.GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) in C:\Users\dsingh\Documents\Visual Studio 2010\Projects\EQ\EQ\Associates\Production.aspx.cs:112
  System.Web.UI.WebControls.GridView.OnRowDataBound(GridViewRowEventArgs e) +115
  System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +181
  System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +3896
  System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +66
  System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
  System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128
  System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
  System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
  System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
  System.Web.UI.WebControls.GridView.DataBind() +4
  EQ.Associates.Production.BindGridView(DataSet ds) in C:\Users\dsingh\Documents\Visual Studio 2010\Projects\EQ\EQ\Associates\Production.aspx.cs:603
  EQ.Associates.Production.BindGridOnPageLoad() in C:\Users\dsingh\Documents\Visual Studio 2010\Projects\EQ\EQ\Associates\Production.aspx.cs:593
  EQ.Associates.Production.Page_Load(Object sender, EventArgs e) in C:\Users\dsingh\Documents\Visual Studio 2010\Projects\EQ\EQ\Associates\Production.aspx.cs:78
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
  System.Web.UI.Control.OnLoad(EventArgs e) +91
  System.Web.UI.Control.LoadRecursive() +74
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207</p>
</blockquote>
