Usted consigue un InvalidOperationException cuando usted intenta ejecutar una operación en un objeto pero el objeto no está todavía en él endereza el estado que se ejecutará.
Podría ser porque usted no abre la conexión.
Puede usted fijar el código qué ejecuta la conexión