• Sábado 21 de Diciembre de 2024, 17:17

Autor Tema:  Nro de registros devueltos en una consulta..  (Leído 2335 veces)

lunaDeEden

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Nro de registros devueltos en una consulta..
« en: Lunes 4 de Enero de 2010, 19:24 »
0
Hola a todos realice la siguiente consulta:
trabajo con visual c# 2008 y mysql.
Código: C#
  1.   private void cmdbuscarf_Click(object sender, EventArgs e)
  2.         {
  3.             //busqueda
  4.          
  5.            MySqlConnection CANAL;
  6.            DataSet TABLA;
  7.            MySqlDataAdapter ORDEN;
  8.            CANAL = new MySqlConnection("user id=root;database=tucuman;server=localhost");
  9.            string q = "select Apellido, nombre from t_empleados where id_empleado = @id_empleado";
  10.        
  11.            ORDEN = new MySqlDataAdapter(q, CANAL);
  12.            ORDEN.SelectCommand.Parameters.Add(new MySqlParameter("@Id_empleado",MySqlDbType.Int64));
  13.            ORDEN.SelectCommand.Parameters["@Id_empleado"].Value = t_legajo.Text;
  14.            TABLA = new DataSet();
  15.            ORDEN.Fill(TABLA, "t_empleados");
  16.            
  17.                if (TABLA.Tables.Count > 0)
  18.                {
  19.                    
  20.                    // Cargando el datagridview
  21.                    MessageBox.Show("Se encontro");
  22.                    datosFamiliar.DataSource = TABLA;
  23.                    datosFamiliar.DataMember = "t_empleados";    
  24.                }
  25.                else
  26.                {
  27.                    MessageBox.Show("no hay que mostrar");    
  28.                 }
  29.                CANAL.Close();
  30.            }
  31.        
  32.  
pero no puedo hacer que se dispare el mensaje de no encontro registros cuando no hay que mostrar, se muestarn los datos cuando hay, y el datagrid vacio cuando no hay..
Alguien me puede ayudar y decirme donde esta el error...ya que estoy empezando en c#...gracias desde ya.. :hola:

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Nro de registros devueltos en una consulta..
« Respuesta #1 en: Lunes 4 de Enero de 2010, 20:48 »
0
Utiliza un DataTable en lugar de un DataSet

Código: C#
  1.  
  2.             DataTable TABLA = new DataTable();
  3.  
  4.  

Y luego utilizar la propiedad Rows.Count del DataTable:

Código: C#
  1.  
  2.             if (TABLA.Rows.Count > 0)
  3.             {
  4.                 // Cargando el datagridview
  5.                 MessageBox.Show("Se encontro");
  6.                 datosFamiliar.DataSource = TABLA;
  7.                 datosFamiliar.DataMember = "t_empleados";
  8.             }
  9.             else
  10.             {
  11.                 MessageBox.Show("no hay que mostrar");
  12.             }
  13.  
  14.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

lunaDeEden

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Nro de registros devueltos en una consulta..
« Respuesta #2 en: Martes 5 de Enero de 2010, 02:46 »
0
Hola, gracias por responder, pero no me anda, cambie lo que me dijiste y me da los siguientes errores:
Error   1   Ya se ha definido una variable local denominada 'TABLA' en este ámbito   
Error   2   La mejor coincidencia de método sobrecargado para 'System.Data.Common.DataAdapter.Fill(System.Data.DataTable, System.Data.IDataReader)' tiene algunos argumentos no válidos   
Error   3   Argumento '2': no se puede convertir de 'string' a 'System.Data.IDataReader'
Te agradeceria muchisimo si me ayudas con esto...mil gracias desde ya...
este es mi codigo modificado:



Código: C#
  1.   private void cmdbuscarf_Click(object sender, EventArgs e)
  2.         {
  3.             //busqueda
  4.          
  5.            MySqlConnection CANAL;
  6.            DataTable TABLA;
  7.            MySqlDataAdapter ORDEN;
  8.            CANAL = new MySqlConnection("user id=root;database=tucuman;server=localhost");
  9.            string q = "select Apellido, nombre from t_empleados where id_empleado = @id_empleado";
  10.        
  11.            ORDEN = new MySqlDataAdapter(q, CANAL);
  12.            ORDEN.SelectCommand.Parameters.Add(new MySqlParameter("@Id_empleado",MySqlDbType.Int64));
  13.            ORDEN.SelectCommand.Parameters["@Id_empleado"].Value = t_legajo.Text;
  14.          DataTable TABLA = new DataTable();
  15.            ORDEN.Fill(TABLA, "t_empleados");
  16.            
  17.                if (TABLA.Rows.Count > 0)
  18.                {
  19.                    
  20.                    // Cargando el datagridview
  21.                    MessageBox.Show("Se encontro");
  22.                    datosFamiliar.DataSource = TABLA;
  23.                    datosFamiliar.DataMember = "t_empleados";    
  24.                }
  25.                else
  26.                {
  27.                    MessageBox.Show("no hay que mostrar");    
  28.                 }
  29.                CANAL.Close();
  30.            }
  31.        
  32.        
  33.  

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Nro de registros devueltos en una consulta..
« Respuesta #3 en: Martes 5 de Enero de 2010, 05:14 »
0
1. Estas definiendo dos veces la variable TABLA.

2. Como estas utilizando un DataTable y no un DataSet, no es necesario que le pases el nombre de la tabla al metodo Fill, debido a que el DataTable ya es una Tabla.

Te dejo el codigo corregido, no lo probe, pero debe de funcionar:

Código: C#
  1.   private void cmdbuscarf_Click(object sender, EventArgs e)
  2.         {
  3.             //busqueda
  4.          
  5.            MySqlConnection CANAL;
  6.            // Elimina la siguiente linea, ya estas definiendo la variable TABLA
  7.            // mas abajo
  8.            // DataTable TABLA;
  9.            MySqlDataAdapter ORDEN;
  10.            CANAL = new MySqlConnection("user id=root;database=tucuman;server=localhost");
  11.            string q = "select Apellido, nombre from t_empleados where id_empleado = @id_empleado";
  12.        
  13.            ORDEN = new MySqlDataAdapter(q, CANAL);
  14.            ORDEN.SelectCommand.Parameters.Add(new MySqlParameter("@Id_empleado",MySqlDbType.Int64));
  15.            ORDEN.SelectCommand.Parameters["@Id_empleado"].Value = t_legajo.Text;
  16.          // Aqui estabas definiendo de nuevo a la variable TABLA, solo se permite
  17.          // definirlo una vez dentro de un mismo bloque
  18.          DataTable TABLA = new DataTable();
  19.            // No es necesario pasar el nombre de la tabla, ya que la variable TABLA
  20.            // ya es una tabla, y no un DataSet, que es un conjunto de tablas
  21.            //ORDEN.Fill(TABLA, "t_empleados");
  22.            ORDEN.Fill(TABLA);
  23.            
  24.                if (TABLA.Rows.Count > 0)
  25.                {
  26.                    
  27.                    // Cargando el datagridview
  28.                    MessageBox.Show("Se encontro");
  29.                    datosFamiliar.DataSource = TABLA;
  30.                    datosFamiliar.DataMember = "t_empleados";    
  31.                }
  32.                else
  33.                {
  34.                    MessageBox.Show("no hay que mostrar");    
  35.                 }
  36.                CANAL.Close();
  37.            }
  38.        
  39.        
  40.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

lunaDeEden

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Nro de registros devueltos en una consulta..
« Respuesta #4 en: Martes 5 de Enero de 2010, 14:00 »
0
Funciona, un millon de gracias por tomarte el tiempo para responderme...Aunque le quite la siguiente linea:
Código: C#
  1.  datosFamiliar.DataMember = "t_empleados";
  2.  

Asi anda perfecto......Otra vez gracias.....

lunaDeEden

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Nro de registros devueltos en una consulta..
« Respuesta #5 en: Martes 5 de Enero de 2010, 14:31 »
0
Hola otra vez ....como te dije anda barbaro, pero  me di cuenta que siempre va a ser un solo empleado el que encuentre, o sea no tiene mucho sentido que lo muestre  en una GRILLA donde deberia definir unas variable para luego asignarsela a un textbox...gracias