I guess you are working using window forms and datagridview.
(1)By default window datagridview allows user to edit its cell value by just "double clicking" on it. Each cell becomes writable of you double click on it. Make sure, property Readonly is not set to true.
(2) There is a property called "DataSource". This is set / get property. When you have updated by cell double click, the data source is automatically updated and you get the updated ( chnaged data ) using DataSource property. DataSource returns an object which is of type "object". Therefore, before using further you need to cast it to appropriate type ( depending upon whether you have used DataTable, DataView object which doing DataBinding operation of your DataGridView. )
DataTable dT = (DataTable)dataGridView1.DataSource;<br />
(3) If you get the Updated data in data table you need to write appropritae code and need to update the database.
(4) Just missed out about adding Button in your post. You can use "DataGridViewButtonColumn" class to add a button column.
DataGridViewButtonColumn buttonCol = new DataGridViewButtonColumn();<br />
buttonCol.Name = "ButtonColumnName";<br />
buttonCol.HeaderText = "Header";<br />
buttonCol.Text = "Button Text";<br />
dataGridView1.Columns.Add(buttonCol); <br />
Hope it helps you,