No método SQLCommand, não entendi pra que declarar a variável myreader e atribuir a ela o retorno do myCommand.ExecuteReader() sendo que não vamos usar aquela variável pra nada.
Ela faz sentido no método SQLQuery, pois lá nós precisamos jogar o conteúdo do retorno da consulta dentro da dataTable, mas no método SQLCommand não.