No, no, no! You should NOT be using ExecuteNonQuery if you have a DataTable. You used a data adapter to populate the DataTable in the first place. Use the same data adapter to save the changes. Follow the CodeBank link in my signature below and check out my thread on Retrieving & Saving Data. It includes an example that uses a data adapter and explicitly creates its InsertCommand, UpdateCommand and DeleteCommand. Follow that example but, instead of assigning SQL code to the CommandText of each command, assign the name of the appropriate sproc and then set the CommandType to StoredProcedure.

By the way, it also demonstrates a much less verbose method of creating the data adapter in the first place.