none
Error en Conexion con Base de Datos desde Visual Basic RRS feed

  • Pregunta

  • hola quisiera si alguien me pudiera orientar en un error que tengo referente a una base de datos la cual quiero conectar con un archivo de visual basic, segun yo ya me deberia de funcionar pero al momento de intentar hacer alguna alta me sale el siguiente mensaje: "ExecuteNonQuery requiere una conexion abierta y disponible. El estado actual es una conexion cerrada".

    quisiera saber como tendria que hacer para hacer que esta misma sea abierta! (disculpen si se ve muy obvio pero no soy bueno programando)

    miércoles, 14 de marzo de 2018 6:30

Respuestas

  • Hola Jose, nadie es bueno ni malo programando, solamente tiene mas o menos experiencia. 

    los pasos que tienes que tener son

    1.- Crear una cadena de conexión a tu destino, como hace la primera instrucción del ejemplo

    2.- Crear un comando, que tenga las dos cosas, el query a ejecutar y esa conexión

    3.- (la que te falta) abrir la conexión

    4.- Ejecutar el comando

    5 cerrar la conexión

     

    SqlConnection connection = new SqlConnection(connectionString)
      SqlCommand command = new SqlCommand(queryString, connection);
      command.Connection.Open();
      command.ExecuteNonQuery()


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    miércoles, 14 de marzo de 2018 6:47
    Moderador
  • Irá en el sitio en que estés utilizando ExecuteNonQuery. Se trata de que al ejecutar una consulta tienes que hacerlo sobre una conexión que hayas abierto previamente.

    Yo te aconsejo que utilices un bloque Using para no dejar abierta la conexión:

    using (SqlConnection connection = new SqlConnection(connectionString)I

    {

        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();   

    }


    Saludos, Javier J

    miércoles, 14 de marzo de 2018 7:53

Todas las respuestas

  • Hola Jose, nadie es bueno ni malo programando, solamente tiene mas o menos experiencia. 

    los pasos que tienes que tener son

    1.- Crear una cadena de conexión a tu destino, como hace la primera instrucción del ejemplo

    2.- Crear un comando, que tenga las dos cosas, el query a ejecutar y esa conexión

    3.- (la que te falta) abrir la conexión

    4.- Ejecutar el comando

    5 cerrar la conexión

     

    SqlConnection connection = new SqlConnection(connectionString)
      SqlCommand command = new SqlCommand(queryString, connection);
      command.Connection.Open();
      command.ExecuteNonQuery()


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    miércoles, 14 de marzo de 2018 6:47
    Moderador
  • pero en que parte iria? en una nueva Public Sub?
    miércoles, 14 de marzo de 2018 7:35
  • Irá en el sitio en que estés utilizando ExecuteNonQuery. Se trata de que al ejecutar una consulta tienes que hacerlo sobre una conexión que hayas abierto previamente.

    Yo te aconsejo que utilices un bloque Using para no dejar abierta la conexión:

    using (SqlConnection connection = new SqlConnection(connectionString)I

    {

        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();   

    }


    Saludos, Javier J

    miércoles, 14 de marzo de 2018 7:53
  • eso iria en una public class  de visual?
    miércoles, 14 de marzo de 2018 22:45
  • Ese código va donde tengas la orden ExecuteNonQuery. Insisto en que solo tienes que abrir la conexión antes de ejecutar la consulta.
    Si quieres pon la parte del código que te da el error y te digo lo que tienes que hacer.

    Saludos, Javier J

    jueves, 15 de marzo de 2018 7:36