I was finally able to solve this issue. When I originally added the datafile to the app, I dragged a query from the datasource onto the form to create the datagridview, but the delete, insert and update commands in the table adapter in the .xsd file were left empty. So I removed the datasource and started over. This time I added the table rather than the query based on the table. As a result, the delete, insert and update commands were automatically created and I was the able to save changes to the datasource made through the datagridview. There are still a few little bugs I need to work out yet, but if anyone's having trouble saving changes to the datasource of a datagridview, you might check to make sure you're using a table from the datafile and not a query.