title: DataBinding: 'System.Data.DataRowView' does not contain a property with the name
body: <p>I am getting this weird error... the primary key in my database is 'DocumentID' so I know that is not the issue. I am trying to get the select,edit &amp; delete gridview buttons to work but I need the datakeynames to be set correctly for them to be available to use. any ideas?</p>
  
  <pre><code>&lt;asp:GridView ID="GridView1" runat="server" DataSourceID="sdsDocuments" EnableModelValidation="True"
          SelectedIndex="0" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" DataKeyNames="DocumentID, DocumentTitle, DocumentBody"&gt;
          &lt;Columns&gt;
              &lt;asp:BoundField DataField="DocumentID" HeaderText="DocumentID" ReadOnly="True" SortExpression="ID" /&gt;
              &lt;asp:BoundField DataField="DocumentTitle" HeaderText="DocumentTitle" SortExpression="Title" /&gt;
              &lt;asp:BoundField DataField="DocumentBody" HeaderText="DocumentBody" SortExpression="Body" /&gt;
              &lt;asp:CommandField ShowSelectButton="True" ShowDeleteButton="True" /&gt;
          &lt;/Columns&gt;
      &lt;/asp:GridView&gt;
      &lt;asp:SqlDataSource ID="sdsDocuments" runat="server" ConnectionString="&lt;%$ ConnectionStrings:blcDocumentationConnectionString %&gt;"
          SelectCommand="SELECT [DocumentTitle], [DocumentBody] FROM [tblDocument]" /&gt;
  </code></pre>
  
  <p>Here is the stack trace...</p>
  
  <pre><code>    [HttpException (0x80004005): DataBinding: 'System.Data.DataRowView' does not contain a                 property with the name 'DocumentID'.] 
          System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) +8672869
         System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +2178
         System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57
         System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
         System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114
         System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
         System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
         System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
         System.Web.UI.WebControls.GridView.DataBind() +4
         System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
         System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72
         System.Web.UI.Control.EnsureChildControls() +87
         System.Web.UI.Control.PreRenderRecursiveInternal() +44
         System.Web.UI.Control.PreRenderRecursiveInternal() +171
         System.Web.UI.Control.PreRenderRecursiveInternal() +171
  
     System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
  </code></pre>