When calling Update on a DataSet I get an exception that there is no Select command. Indeed the DataAdapter does not have a command to execute the query.
I think it is caused by the CommandBuilder not being notified of the RowUpdated event. Due to the OdbcCommandBuilder having it's own reference to the DataAdapter it's base (DbCommandBuilder) uses another one to notify and the commands are not created.
Adding this to the end of the setter of OdbcCommandBuilder.DataAdapter seems to work
base.DataAdapter = _adapter;