Antes de mais nada, esta linha não é necessário:
gdaMyDataAdapter.UpdateCommand = MyCommandBuilder.GetUpdateCommand (verdadeiro)
… que é porque o o SqlCommandBuilder toma o SelectCommand atual do DataAdapter que lhe é passado para gerar o InsertCommand, o DeleteCommand, e o UpdateCommand required. Desde que o DataAdapter foi passado pela referência, as mudanças fizeram dentro do CommandBuilder são agora visíveis ao descanso do programa.
Do mesmo modo os seguintes não são necessários:
MyCommandBuilder.GetUpdateCommand ()
'Abaixo de duas chamadas parecer não fazer NADA.
MyCommandBuilder.GetDeleteCommand ()
MyCommandBuilder.GetInsertCommand ()
… para a mesma razão. Você passa o DataAdpater ao construtor do CommandBuilder, e todos os comandos required são ajustados automagically dentro do CommandBuilder.