you dont need to call .AcceptChanges() on the DataGridView at the end. AcceptChanges() submits the changes from your DGV to the connected DataSource (your DataTable)

Try calling AcceptChanges() before you try to submit the changes to your Database.

I think your problem is with your connection. You manually create and open a connection and assign it to your DataAdapter. But within your _Load() Method, you close the connection. As the DataAdapter used inside the _Click EventHandler is the same as the one used in your _Load() Method (therefore uses the same connection). It can't submit any changes to your Database because you already closed the connection.

Don't you get any exceptions at runtime?

Try using breakpoints to examine the current state of your connection Object before you attempt to submit your changes to your Database.

Also, AFAIK MS advises against creating connections manually if you want to use them within a DataAdapter.

DataAdapter's Constructor can create a connection on its own