
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:
y el error me salta en la siguiente parte:
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.
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


0