Visual Basic para Aplicaciones - Problemas con "Connection must be valid and open"

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Agustín Daniel

Problemas con "Connection must be valid and open"

Publicado por Agustín Daniel (1 intervención) el 21/12/2014 21:50:36
Hola a todos tengo un problema al utilizar una base de datos de MySQL que al tratar de obtener los datos de una tabla el programa se detiene y me aparece el siguiente error "Connection must be valid and open". La base de datos esta en la misma maquina y lo cree con 'phpmyadmin'.

Con estas lineas establezco la conexión:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Conexion
    {
        public static MySqlConnection conn = new MySqlConnection("Server=localhost;Database=bd_tesis_facultad;Uid=root@localhost;Password=root;");
 
        public static void Conectar()
        {
            try
            {
                System.Console.WriteLine("Intentando...");
                conn.Open();
                System.Console.WriteLine("Conexión establecida");
                System.Console.WriteLine("--------------------");
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("ERROR !!! " + ex);
            }
        }
 
        public static void Desconectar()
        {
            if (conn != null)
            {
                conn.Close();
                Console.WriteLine("Deconectados");
            }
        }
 
    }

y el error me salta en la siguiente parte:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class AlumnosAdo
    {
        public AlumnosAdo()
        {
            if (Conexion.conn.State == ConnectionState.Closed) //Conectamos con el constructor
                Conexion.Conectar();
        }
 
        public IList<Alumnos> getAll()
        {
            MySqlDataReader rdr = null;
            try
            {
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM alumnos", Conexion.conn);
                cmd.CommandType = CommandType.Text;
                rdr = cmd.ExecuteReader();  //El problema salta en esta linea
            }
            finally { }
 
            List<Alumnos> lista = new List<Alumnos>();
            while (rdr.Read())
            {
                Alumnos c = new Alumnos();
                c.AlumnId = (int)rdr[0];
                c.AlumNom = (String)rdr[1];
                c.AlumApe = (String)rdr[2];
                c.AlumNac = (DateTime)rdr[3];
                c.AlumDire = (String)rdr[4];
                c.AlumTel = (Double)rdr[5];
                c.AlumGene = (Char)rdr[6];
                lista.Add(c);
            }
            rdr.Close();
            return lista;
        }
...

creería que el error se produce mas por que me falta configurar alguna parte que por el código pero e visto en varios foros y no puedo encontrar una solución, espero que puedan ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder