Si se me fue asi esta mal. Borra esa linea donde lo declaras esa linea y la declaras hasta que ejecutes el comando.
Código vb.net:
Ver originalDim dr As MySqlDataReader = cmd.ExecuteReader()
Pero seria igual a como la tenias antes, pero dices que te carga los datos en los textbox y que el error te lo muestra cuando haces la actualización de los datos, como actualizas los datos.