Yes, DataMember returns the name of the datatable in the DataSource for which the DataGridView is displaying data.
You would have set the Datagridview.Datasource to some valid datasources like,
1. List - one dimensional arrays or
2. DataTable or Dataset or
3. Binding Source or
4. Binding List
Typically, you will bind to a BindingSource component and bind the BindingSource component to another data source or populate it with business objects. The BindingSource component is the preferred data source because it can bind to a wide variety of data sources and can resolve many data binding issues automatically.
When binding to a data source that contains multiple lists or tables, you must set the DataMember property to a string that specifies the list or table to bind to. When binding to a BindingSource component that contains multiple lists or tables, however, you can set the DataMember property of the BindingSource component instead.
Are you binding your Gridview to your Binding Source? if yes, why dont you try setting the Datatable directly to your Datagridview?
If you are using Bindingsource, You will set your corresponding Datatable to your Bindingsource Datasource property and then set that bindingsource object to your Datagridview.datasource property.
You can check the below msdn link for more info on Datagridview.datasource property,
C# Tutorial - Binding a DataGridView to a Database