How to: Change Displayed Data at Run Time in the Windows Forms DataGrid Control


The DataGridView control replaces and adds functionality to the DataGrid control; however, the DataGrid control is retained for both backward compatibility and future use, if you choose. For more information, see Differences Between the Windows Forms DataGridView and DataGrid Controls.

After you have created a Windows Forms DataGrid using the design-time features, you may also wish to dynamically change elements of the DataSet object of the grid at run time. This can include changes to either individual values of the table or changing which data source is bound to the DataGrid control. Changes to individual values are done through the DataSet object, not the DataGrid control.

To change data programmatically

  1. Specify the desired table from the DataSet object and the desired row and field from the table and set the cell equal to the new value.


    To specify the first table of the DataSet or the first row of the table, use 0.

    The following example shows how to change the second entry of the first row of the first table of a dataset by clickingButton1. The DataSet (ds) and Tables (0 and1) were previously created.

    private void button1_Click(object sender, System.EventArgs e)

    (Visual C#, Visual C++) Place the following code in the form's constructor to register the event handler.

    this.button1.Click += new System.EventHandler(this.button1_Click);

    At run time you can use the SetDataBinding method to bind the DataGrid control to a different data source. For example, you may have several ADO.NET data controls, each connected to a different database.

To change the DataSource programmatically

  1. Set the SetDataBinding method to the name of the data source and table you want to bind to.

    The following example shows how to change the date source using the SetDataBinding method to an ADO.NET data control (adoPubsAuthors) that is connected to the Authors table in the Pubs database.

    private void ResetSource()
       DataGrid1.SetDataBinding(adoPubsAuthors, "Authors");