Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: RevolucionVegana en 10 Abril 2017, 11:35 am



Título: Almacenar en variable un valor entero con MySqlDataReader
Publicado por: RevolucionVegana en 10 Abril 2017, 11:35 am
Hola a todos ayer estuve con este problema unas 2 o 3 horas y hoy 1 hora no paro de buscar y me salen resultados sobretodo he ido probando soluciones de StackOverflow, y aunque me ha servido muchas cosas que he ido leyendo para aclararme sobre que puedo y que no puedo hacer con ExecuteScalar() ExecuteNonQuery() y un poco ExecuteReader(), no consigo obtener el número que hay almacenado en una celda que puede ser 1 o 0, esto lo almacenamos en una variable y dependiendo de lo que sea se hará una cosa u otra, he probado poniendo el lector.Read() dentro de while y también dentro de IF y nada, también metiendo lo de MySqlDataReader lector = comando.ExecuteReader() dentro de un using(aquí){},

Código
  1. MySqlConnection HacerConexion = new MySqlConnection(ConexionDB);
  2.            HacerConexion.Open(); //Abrimos conexión
  3.            MySqlCommand comando = new MySqlCommand(ConsultaSQL, HacerConexion);
  4.            MySqlDataReader rd = comando.ExecuteReader();
  5.  
  6.            rd.Read();
  7.            int rangoUser = (int)rd["rango"];
  8.  
  9.            if(rangoUser == 0)
  10.            {
  11.                MessageBox.Show("No eres admin");
  12.            }
  13.            else
  14.            {
  15.                MessageBox.Show("Sí eres admin");
  16.            }

Eso es lo que tengo ahora mismo e igualmente me da error en int rangoUser = (int) rd["rango"];

A ver si alguien tiene este mismo problemilla gracias y un saludo ahora buscaré por youtube a ver si veo algo

ACTUALIZACIÓN

Ya funciona!!!!! el problema venía de otra cosa totalmente diferente, necesitaba pasar el valor de un form a otro y por la tontería de que había puesto la variable estática (la que usaría más tarde en otro form) después de this.Hide() pues pasaba una variable vacía y claro después a la hora de hacer la consulta SQL en el WHERE le estaba pasando una variable vacía y por más que tocase cosas no conseguía nada, al final lo he hecho con ExecuteScalar() y me ha quedado tal que así:

Código
  1. MySqlConnection HacerConexion = new MySqlConnection(ConexionDB);
  2.            HacerConexion.Open(); //Abrimos conexión
  3.            MySqlCommand comando = new MySqlCommand(ConsultaSQL, HacerConexion);
  4.            Int32 lector = Convert.ToInt32(comando.ExecuteScalar());
  5.  
  6.            if(lector == 0)
  7.            {
  8.                MessageBox.Show("No eres admin");
  9.            }
  10.            else if(lector == 1)
  11.            {
  12.                MessageBox.Show("Eres admin");
  13.            }
  14.  

Por si a alguien le sirve :D


Título: Re: Almacenar en variable un valor entero con MySqlDataReader
Publicado por: Eleкtro en 10 Abril 2017, 12:28 pm
me da error en int rangoUser = (int) rd["rango"];

¿Qué tipo de excepción y con que mensaje de error?. No somos adivinos.

¡Saludos!