none
tengo un proble con un con un combo box y unos text box

    Pregunta

  • tengo un combo box donde hice un código para que selecciones una clave de otra form y abajo del combo box hay unos text box que me muestran los campos de la otra form igual este es mi codigo

    private

    voidFRM_Cat_Prestamos_Load(objectsender, EventArgse)

            {

                llenar_inventario();

               

            }

           

    privatevoidllenar_inventario()

            {

               

    stringsql = "SELECT Clave  FROM Inventario ORDER BY Clave";

               

    OleDbConnectionconexion = newOleDbConnection();

               

    OleDbCommandcmd = newOleDbCommand();

               

    OleDbDataReaderleer_reg;

     CMB_Clave.Items.Clear();

    conexion.ConnectionString =

    Prestamos_SRC.BASE_DATOS;

                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandText = sql;

                leer_reg = cmd.ExecuteReader();

               

    while(leer_reg.Read())

                CMB_Clave.Items.Add(leer_reg.GetDouble(0));

     

                conexion.Close();

            }

           

    privatevoidllenar_datosinventario(intxcualbuscar, stringvalor)

            {

               

    stringsql = "";

               

    if(xcualbuscar == 1)

                    sql =

    "SELECT * FROM Inventario WHERE Clave = '"+ valor + "'ORDER BY Clave";

               

    OleDbConnectionconexion = newOleDbConnection();

               

    OleDbCommandcmd = newOleDbCommand();

               

    OleDbDataReaderleer_reg;

                conexion.ConnectionString =

    Prestamos_SRC.BASE_DATOS;

                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandText = sql;

                leer_reg = cmd.ExecuteReader();

               

    while(leer_reg.Read())

                {

                    TXT_Id_Prestamos.Text = leer_reg.GetInt32(0).ToString();

                    TXT_Clave.Text = leer_reg.GetDouble(1).ToString();

                    TXT_Area.Text = leer_reg.GetString(2);

                    TXT_Producto.Text = leer_reg.GetString(3);

                    TXT_Cantidad.Text = leer_reg.GetDouble(4).ToString();

                    TXT_Precio.Text = leer_reg.GetDouble(5).ToString();

                }

                conexion.Close();

            }

    private

    voidFRM_Cat_Prestamos_Load(objectsender, EventArgse)

            {

                llenar_inventario();

               

            }

           

    privatevoidllenar_inventario()

            {

               

    stringsql = "SELECT Clave  FROM Inventario ORDER BY Clave";

               

    OleDbConnectionconexion = newOleDbConnection();

               

    OleDbCommandcmd = newOleDbCommand();

               

    OleDbDataReaderleer_reg;

                CMB_Clave.Items.Clear();

                conexion.ConnectionString =

    Prestamos_SRC.BASE_DATOS;

                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandText = sql;

                leer_reg = cmd.ExecuteReader();

               

    while(leer_reg.Read())

                CMB_Clave.Items.Add(leer_reg.GetDouble(0));

     

                conexion.Close();

            }

           

    privatevoidllenar_datosinventario(intxcualbuscar, stringvalor)

            {

               

    stringsql = "";

               

    if(xcualbuscar == 1)

                    sql =

    "SELECT * FROM Inventario WHERE Clave = '"+ valor + "'ORDER BY Clave";

               

    OleDbConnectionconexion = newOleDbConnection();

               

    OleDbCommandcmd = newOleDbCommand();

               

    OleDbDataReaderleer_reg;

                conexion.ConnectionString =

    Prestamos_SRC.BASE_DATOS;

                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandText = sql;

                leer_reg = cmd.ExecuteReader();

                 while(leer_reg.Read())

                {

                    TXT_Id_Prestamos.Text = leer_reg.GetInt32(0).ToString();

                    TXT_Clave.Text = leer_reg.GetDouble(1).ToString();

                    TXT_Area.Text = leer_reg.GetString(2);

                    TXT_Producto.Text = leer_reg.GetString(3);

                    TXT_Cantidad.Text = leer_reg.GetDouble(4).ToString();

                    TXT_Precio.Text = leer_reg.GetDouble(5).ToString();

                }

                conexion.Close();

            }

    private

     void CMB_Clave_SelectedIndexChanged(objectsender, EventArgse)

            {

                llenar_datosinventario(1, CMB_Clave.Text);

            }

    me aparece un error que dice    No coinciden los tipos de datos en la expresión de criterios.

    gracias por su ayuda


    serchrc


    domingo, 27 de abril de 2014 15:19

Respuestas

  • ok si pones un breakpoint en el codigo y evaluas el valor que toma la variable "valor" que pasas por parametro

    puede decir que existe algun registro en la tabla de Inventario que coincida ?

    porque puede ser que estes usando el campo incorrecto para filtrar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta sergio carbajal domingo, 27 de abril de 2014 22:39
    domingo, 27 de abril de 2014 21:52

Todas las respuestas

  • me aparece un error que dice    No coinciden los tipos de datos en la expresión de criterios.

    pero me pregunto, porque no usas parametros

    private void llenar_datosinventario(string valor)
    {
    	using(OleDbConnection conexion = new OleDbConnection(Prestamos_SRC.BASE_DATOS))
    	{
    		conexion.Open();
    		  
    		string sql = "SELECT * FROM Inventario WHERE Clave = @clave";
    		OleDbCommand cmd = new OleDbCommand(sql, conexion);
    		cmd.Parameters.AddWithValue("@clave", valor);
    		   
    		OleDbDataReader leer_reg = cmd.ExecuteReader();
    
    		if(leer_reg.Read())
    		{
    			TXT_Id_Prestamos.Text = leer_reg.GetInt32(0).ToString();
    			TXT_Clave.Text = leer_reg.GetDouble(1).ToString();
    			TXT_Area.Text = leer_reg.GetString(2);
    			TXT_Producto.Text = leer_reg.GetString(3);
    			TXT_Cantidad.Text = leer_reg.GetDouble(4).ToString();
    			TXT_Precio.Text = leer_reg.GetDouble(5).ToString();
    		}
    	}
    
    }

    no cress que asi queda mas prolijo el codigo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 27 de abril de 2014 15:43
  • disculpa Leandro soy nuevo apenas estoy empezando a programar sustitui el código que me pusiste pero me pone un error en leer regel error lo tengo donde esta el parametro el cmd.ExuteReader();

    serchrc


    domingo, 27 de abril de 2014 16:18
  • aquí esta como se ve mi form disculpa las molestias

    serchrc

    domingo, 27 de abril de 2014 16:21
  • amigo tu código si me funciono pero cuando yo elijo digamos una clave del otro form me tiene que mostrar en los text box los datos del otro form que es el form inventario si me entiendes leandro

    serchrc

    domingo, 27 de abril de 2014 16:29
  • pero ese codigo no es el que puse, yo uso parametros y alli sigues sin implementarlo

    donde esta la linea

    cmd.Parameters.AddWithValue("@clave", valor);

    vuelvo a remarcar usa parametros


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 27 de abril de 2014 19:06
  • implemente el código con parámetros pero al correr el programa cuando selecciono el combo box clave me sale todas las claves del form inventario todo va bien pero cuando selecciono una clave solo se queda la clave no me muestra todos los campos en el text box como son área producto cantidad y precio me podrias ayudar Leandro disculpa las molestias aquí te adjunto unas imágenes.


    serchrc

    domingo, 27 de abril de 2014 20:17

  • serchrc

    domingo, 27 de abril de 2014 20:19
  • sigues sin usar el codigo que propuse

    analiza el ejemplo que he escrito y comparalo con el que has creado

    no puedes concatener el valor en un string, donde defienes el WHERE Clave = @clave

    estas adapatando de forma incompleta el ejemplo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 27 de abril de 2014 20:29
  • amigo si una disculpa no lo cheque bien pero sigue sin aparecerme los datos en el text box

    serchrc

    domingo, 27 de abril de 2014 21:47
  • ok si pones un breakpoint en el codigo y evaluas el valor que toma la variable "valor" que pasas por parametro

    puede decir que existe algun registro en la tabla de Inventario que coincida ?

    porque puede ser que estes usando el campo incorrecto para filtrar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta sergio carbajal domingo, 27 de abril de 2014 22:39
    domingo, 27 de abril de 2014 21:52
  • gracias Leandro por tu tiempo ya funciona

    serchrc

    domingo, 27 de abril de 2014 22:40