Understanding Row State

Understanding Row State

 

Deleting a Row from DataGridView and inserting it to another Grid.

 

Create a Window Form Application Project:-

Having a form with two DataGridViews “DataGridView1' and “DataGridView2”

 

Bind Gridview With Programmatic Binding as

 

Include name Space:- using System.Data.SqlClient;

 

Bind data at page load event

 

  SqlDataAdapter da;

  DataSet ds;

  DataTable dt;

  private void Form1_Load(object sender, EventArgs e)

  {

     da = new SqlDataAdapter("Select * from emp", "initial catalog=mine;data source=.;integrated security=true");

     ds = new DataSet();

     da.Fill(ds, "Emp");

     dataGridView1.DataSource = ds.Tables["Emp"];

     dt = ds.Tables[0].Clone(); //This method copy only schema of table

     dataGridView2.DataSource = dt; //Appling data source to second Grid view (Table that containing the schema of “ds.Tables[0]”

 }

 

 

Generate event to create method for Deleting a Row in DataGridView to do that Right click on Grid View and click on property in popup menu

 

Click on event   symbol from property menu

 

Double click on event userDeletingRow  to auto generated method it will create a method 

 

 

and write the following code in that event

 

    private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)

        {

            //This event fires when a row is deleted by user

            //(To do that click on row header to select the row and press Delete Key from keyboard

            dt.ImportRow(ds.Tables[0].Rows[e.Row.Index]);  //Import Row in dt(data table) Source of second DataGridView

            ds.Tables[0].AcceptChanges(); //Row is in the deleted state this method confirm the deletion

            dt.RejectChanges();  //Row in the dt is also in deleted state so do not appear so we call reject changes to

                                // Reject the row state from deleting to normal

        }

 

 

 

Row will shift from GridView1 to Grid View 2

Click on Row header to select the Row then press “Delete” key to delete the Row

 

 

 This will Remove Row from DataGridView1 and Insert into DataGridView2