How to bind a DataGridView to a DataSet without a database?

B

bill

All,

Where can I find some sample code for binding a DataGridView to a
dataset without having the dataset attached to a database?

TIA,

Bill
 
G

Guest

A DataSet is just a representation of an in-memory data cache. The data
could come from anywhere. DataSet supports XML files directly and usually
DataAdapters are uses to fill the DataSet via a database connection. You can
manually create a DataSet by adding DataTable objects to the
DataTableCollection property "Tables". For an example of creating a DataSet
without using an XML file or populating via a database connection see
http://msdn2.microsoft.com/en-us/library/aeskbwf7.aspx

Binding that DataSet to the DataGridView would be the same as if the DataSet
was populate via a database connection and a DataAdapter.
 
B

bill

Peter,

The following code results in nothing appearing in the DataGridView:

BindingSource bs = new BindingSource();
private void initDataGridView(DataGridView dgv)
{
// dsForDGV is a datset object on the form

dsForDGV.Tables[0].Rows.Add("abc");
dsForDGV.Tables[0].Rows[0][0] = 1234;
bs.DataSource = dsForDGV;
bs.DataMember = dsForDGV.Tables[0].TableName;
dgv.DataSource = bs;
dgv.Refresh();
}

What am I doing wrong? When the form opens the DataGridView control has
the correct number of rows and columns, but they are all blank.

Bill
 
C

ClayB

Have you added a DataTable to your DataSet that contains a string
column? The code below worked OK for me in a simple sample.

Clay Burch
Syncfusion, Inc.

DataSet dsForDGV = new DataSet();
BindingSource bs = new BindingSource();
private void Form1_Load(object sender, EventArgs e)
{
DataTable dataTable1 = new DataTable("MyTable");
dataTable1.Columns.Add(new DataColumn("Col0"));
dsForDGV.Tables.Add(dataTable1);

initDataGridView(this.dataGridView1);
}

private void initDataGridView(DataGridView dgv)
{
dsForDGV.Tables[0].Rows.Add("abc");
dsForDGV.Tables[0].Rows[0][0] = 1234;
bs.DataSource = dsForDGV;
bs.DataMember = dsForDGV.Tables[0].TableName;
dgv.DataSource = bs;
dgv.Refresh();
}
 
K

krishnen

Bill,

Make sure the DataPropertyName is set correctly for the columns is set
correctly so that the mapping is made corerctly between the Data Source
and the DatagridView

Krishnen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top