Reputation: 279
I have created Windows Application. In this, I have multiple tables in dataset, now I want to bind that to a single DataGridView. Can anybody help me?
Upvotes: 24
Views: 181142
Reputation: 242
This Worked for me in asp.net
dgHistory.DataSource = ds.Tables[0]; // dgHistory is the datagrid
dgHistory.DataBind();
Upvotes: 0
Reputation: 63065
following will show one table of dataset
DataGridView1.AutoGenerateColumns = true;
DataGridView1.DataSource = ds; // dataset
DataGridView1.DataMember = "TableName"; // table name you need to show
if you want to show multiple tables, you need to create one datatable or custom object collection out of all tables.
if two tables with same table schema
dtAll = dtOne.Copy(); // dtOne = ds.Tables[0]
dtAll.Merge(dtTwo); // dtTwo = dtOne = ds.Tables[1]
DataGridView1.AutoGenerateColumns = true;
DataGridView1.DataSource = dtAll ; // datatable
sample code to mode all tables
DataTable dtAll = ds.Tables[0].Copy();
for (var i = 1; i < ds.Tables.Count; i++)
{
dtAll.Merge(ds.Tables[i]);
}
DataGridView1.AutoGenerateColumns = true;
DataGridView1.DataSource = dtAll ;
Upvotes: 47
Reputation: 717
use like this :-
gridview1.DataSource = ds.Tables[0]; <-- Use index or your table name which you want to bind
gridview1.DataBind();
I hope it helps!!
Upvotes: 6
Reputation: 1007
you can set the dataset to grid as follows:
//assuming your dataset object is ds
datagridview1.datasource= ds;
datagridview1.datamember= tablename.ToString();
tablename is the name of the table, which you want to show on the grid.
I hope, it helps.
B.R.
Upvotes: 0