I think that you have misunderstood what you have been reading. There is no connection at all between the grid and the database. .NET data access works by opening a connection to the database, moving data between the database and a local cache, then closing the connection. In your case, the local cache is most like a DataTable, which may or may not be in a DataSet. It is that local cache, which is not connected to the database, that your grid is bound to.
Any changes you make in the grid will be propagated to the DataTable, but that doesn't affect the database. You call Fill on a data adapter or table adapter to retrieve data from the database into the DataTable. Conversely, you call Update on the same data adapter or table adapter to save changes from the DataTable back to the database.
The code you posted is wrong for a number of reasons. Firstly, the Refresh call on the grid is completely pointless as it has nothing to do with data. That method simply redraws a control on screen. The only time you should be calling Refresh is if you're doing your own GDI+ drawing or on the rare occasions that you're doing long-running work on the UI thread and what to make the UI look like it isn't frozen.
Secondly, Remove or RemoveAt are not how you delete bound data. What you should be doing is binding the DataTable to a BindingSource and binding that to the grid and then, to delete the current record, you call RemoveCurrent on the BindingSource. That will work for simple data sources too but, in the case of a DataTable, what it does is call the Delete method of the underlying DataRow, which is what you need to do if you want to delete that record from the database. I'm not sure whether what you're doing would even work to remove the bound DataRow from the DataTable but, even if it did, that would be of no use. Removing a DataRow from a DataTable is like not retrieving it in the first place and if you don;t retrieve it then you can't delete it. Deleting a DataRow actually keeps it in the DataTable but sets its RowState to Deleted. It's that flag that causes the data adapter or table adapter to execute a SQL DELETE statement against the database for that record.