none
Metodo Buscar RRS feed

  • Pregunta

  •  Tengo el siguiente para un método buscar, mi problema es que al intentar buscar los datos no entra al if y solo me dice que los datos no están.
     private void button1_Click(object sender, EventArgs e)
            {
    
                conexionbd conexion = new conexionbd();
                conexion.abrir();
                SqlConnection conectarbd = new SqlConnection("Data Source=PRACTICANTETI; Initial Catalog=Bascula3 ;Integrated Security=True");
                SqlCommand cmd = new SqlCommand("SELECT  Folio,Lote,AvisoEmbarque,Contrato, Nombre, Marca, PlacasCaja, Modelo, NumeroEco, Placas,Color,Transportadora, Provee, Concepto, Producto,Tipo,NTipo,Observaciones FROM Camion INNER JOIN Operadores ON Camion.idCamiones = Operadores.idOperador INNER JOIN Productos ON Productos.idProducto = Operadores.idOperador inner join Proveedores ON Proveedores.idProveedor = Productos.idProducto  inner join Entrada ON Entrada.idEntrada = Proveedores.idProveedor where Placas = '" + bus.Text + "'", conectarbd);
                conectarbd.Open();
                SqlDataReader leer = cmd.ExecuteReader();
                if (leer.Read() == true)
                {
                    folioen.Text = leer["Folio"].ToString();
                    loten.Text = leer["Lote"].ToString();
                    contra.Text = leer["Contrato"].ToString();
                    aviso.Text = leer["AvisoEmbarque"].ToString();
                    textope.Text = leer["Nombre"].ToString();
                    marca.Text = leer["Marca"].ToString();
                    placaca.Text = leer["PlacasCaja"].ToString();
                    modelo.Text = leer["Modelo"].ToString();
                    nume.Text = leer["NumeroEco"].ToString();
                    placas.Text = leer["Placas"].ToString();
                    color.Text = leer["Color"].ToString();
                    trans.Text = leer["Transportadora"].ToString();
                    provergi.Text = leer["Provee"].ToString();
                    concepregis.Text = leer["Concepto"].ToString();
                    produc.Text = leer["Producto"].ToString();
                    protipo.Text = leer["Tipo"].ToString();
                    numt.Text = leer["NTipo"].ToString();
                    observa.Text = leer["Observaciones"].ToString();
                }
                else
                {
                    MessageBox.Show("Los datos no estan registrados", "Error del sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    folioen.Text = (" ");
                    loten.Text = (" ");
                    contra.Text = (" ");
                    aviso.Text = (" ");
                    textope.Text = (" ");
                    marca.Text = (" ");
                    placaca.Text = (" ");
                    modelo.Text = (" ");
                    nume.Text = (" ");
                    placas.Text = (" ");
                    color.Text = (" ");
                    trans.Text = (" ");
                    provergi.Text = (" ");
                    concepregis.Text = (" ");
                    produc.Text = (" ");
                    protipo.Text = (" ");
                    numt.Text = (" ");
                    observa.Text = string.Empty;
                }

    lunes, 17 de febrero de 2020 15:41

Todas las respuestas

  • hola

    pero esto ya lo habias consultado

     Metodo Buscar

    pero no veo que hayas aplicado ninguna de las recomendaciones que te dimos en la pregunta anterior, como esperas un resultado diferente sino cambiaste nada?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2020 15:51
  • si cambie las cosas y ya no me marca error en las excepciones, este es otro código de prueba que hice, ya cambie por parámetros, y se definió el INNER JOIN pero no me deja consulta los datos que tengo en la base.

    Mi error es al querer mostrar los datos de entrada que son Folio, AvisoEmbarque, Contrato y Lote, cuando intento que busque estos datos me marca el error 

    • Editado Katsa lunes, 17 de febrero de 2020 16:33
    lunes, 17 de febrero de 2020 16:07
  • hola

    >>ya cambie por parámetros,

    donde ? sigues sin usar parametros, esto

    where Placas = '" + bus.Text + "'"

    esta mal, no se concatena los valore sen un string

    >>cuando intento que busque estos datos me marca el error

    cual error?

    si es que no retorna registros puede que una de las relaciones no este correcta

    deberias ir quitandolas y ver cual genera el problema en la relacion, si una relacion no hay registros no devolvera nada, por eso si la relacion es opcional deberias usar el LEFT JOIN

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2020 17:24
  • where Placas = @Placas ", conectarbd);
                cmd.Parameters.AddWithValue("@Placas", bus.Text);

    fue el cambio que hice. y si al parecer la relación de entrada no es correcta ahí es donde esta el error

    lunes, 17 de febrero de 2020 17:51
  • >>where Placas = @Placas ", conectarbd); cmd.Parameters.AddWithValue("@Placas", bus.Text); fue el cambio que hice

    donde? en el codigo que nos muestras no veo ningun @placas

    ni tampoco el cmd.Parameters

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2020 19:20
  • El código que mostré yo no lo hice solo estoy tratando de componerlo por que esta mal, quien lo hizo dejo todo un desastre en varias partes.

    Por eso lo estoy componiendo de acuerdo a las recomendaciones que me da ya que soy nueva trabajando en c#

    lunes, 17 de febrero de 2020 20:05
  • ok pero se supone que cuando preguntas en el foro debes poner las mejoras que aplicas, si siempre pones el mismo codigo entonces entendemos que no estas haciendo ninguna mejora

    como sabes nosotros que estas "componiendo" para ayudarte en base a eso, sino lo explicas ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2020 22:47
  • Hola amig@. Con todo respeto creo que eres un poco nuev@ y por ello estas un poco confundid@ desde el inicio. 

    Te adjunto una imagen con una breve explicación y algunas recomendaciones sobre como debes elaborar un SELECT donde relacionas dos o mas tablas. Comienza por allí, arregla tu consulta SQL por que esta mal desde el principio.

    Espero te sea de utilidad.

    • Propuesto como respuesta aelp miércoles, 19 de febrero de 2020 19:15
    martes, 18 de febrero de 2020 1:08
  • Hola Katsa

    Espero que no hayas quedado espantada por tanta discusión y barullo que te dieron y, lamentablemente, no demasiada ayuda. Me ha pasado, en algunas preguntas del Foro, que al llegar yo para ayudar, la persona ya se había espantado y no volvió más al Foro. Eran preguntas con algoritmos interesantes que pedían de esos que sólo yo respondo. Espero que leas esto y poder ayudarte. Quedate tranqui que esto es bastante más fácil que los algoritmos.

    Empecemos por la consulta de SQL. Tendrías que verificar que devuelva resultados en el SQL Server Management Studio, donde tenes tu base de datos.

    Podes pasarme la estructura de las tablas involucradas y explicarme lo mejor posible que tiene que devolver la consulta y que relación hay entre las tablas? Algo que dijeron y que creo que es probable es que haya que usar LEFT JOIN.

    Vamos por partes, y una vez que veamos que la consulta arroja los datos correctamente, el código en C# va a ser lo más fácil.

    Pablo


    miércoles, 19 de febrero de 2020 0:44