none
Consulta Base De Datos Acces Desde C#

    Întrebare

  • Buenas A Todos ! Bueno Amigos Tengo Un Problema ! Sabes Y Es Que Tengo Una Base De Datos Creada En Acces 2007 Y Tengo El Visual Studio

    Pues Tengo Una Base De Datos Llamada LeonBase Y Una Tabla Llamada LeonTabla Esa Tabla Tiene 3 Campos El Primer Campo Se Llama Nombre

    Y El Segundo Matricula Y El Tercero Se Llama Color Pues Quiero Hacer una Consulta Que Cuando Yo Ponga En El Texbox1  El Nombre Ejemplo

    Juan Me Aparescan Todos Los Datos De Esa Persona Ejemplo Pongo Juan Entonces Me Aparece  Matricula 11232746 Y  Color Rojo Osea Me

    Aparesca La iNFORMACION De Los Otros Campos.. Ayudenme Por Favor Si Puede. :)

    De Ante Mano Gracias. !

    21 martie 2011 20:16

Răspunsuri

  • hola

    pero en este caso es una busqueda exacta la que haces ? o sea escribes Juan y en la tabla hay solo un Juan para mostrar, lo pregunto porque si hay mas de uno deberias mostrarlo en un grid para que el usuario seleccione cual quiere editar

    lo que no ahs emncionado es como se relacionan estas tablas, imagino hay un id o codigo que relaciona entre ellas, sino lo has deberias crearlo, ya que magicamente no pueds unirlas

    la consulta podria ser

    SELECT L.Nombre, M.Matricula, C.Color

    FROM LeonTabla L INNER JOIN Matricula M ON L.Id = M.Id

      INNER JOIN Color C ON L.Id = C.Id

    WHERE L.Nombre = @nombre

     

    como veras el id relaciona las tablas y permite obtener en una sola consulta toda la info

    aclara si esto que planteo se va entendiendo

     

    algo que no aclaraste es como estas conectandote a la db, usas dataset tipados, o los objetos de ado.net para esto, quizas te conectas usando el OleDbConection ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    21 martie 2011 20:29

Toate mesajele

  • hola

    pero en este caso es una busqueda exacta la que haces ? o sea escribes Juan y en la tabla hay solo un Juan para mostrar, lo pregunto porque si hay mas de uno deberias mostrarlo en un grid para que el usuario seleccione cual quiere editar

    lo que no ahs emncionado es como se relacionan estas tablas, imagino hay un id o codigo que relaciona entre ellas, sino lo has deberias crearlo, ya que magicamente no pueds unirlas

    la consulta podria ser

    SELECT L.Nombre, M.Matricula, C.Color

    FROM LeonTabla L INNER JOIN Matricula M ON L.Id = M.Id

      INNER JOIN Color C ON L.Id = C.Id

    WHERE L.Nombre = @nombre

     

    como veras el id relaciona las tablas y permite obtener en una sola consulta toda la info

    aclara si esto que planteo se va entendiendo

     

    algo que no aclaraste es como estas conectandote a la db, usas dataset tipados, o los objetos de ado.net para esto, quizas te conectas usando el OleDbConection ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    21 martie 2011 20:29
  • Hola amigo

    te refieres a algo como esto: "select * from LeonTabla Where Nombre=@nombre" de esa manera obtienes todos los datos de la persona cuyo nombre coincida con el que le pasas, pero creo que deberías tener en cuenta que puede haber mas de una persona con el mismo nombre... La duda que planteas es solo sobre la consulta o necesitas también la manera de conectar con la BD, etc? Saludos

    ** también podrías obtener solo los datos que requieres: "select Matricula, Color from LeonTabla Where Nombre=@nombre
    21 martie 2011 20:31
  • Hola ...

    Tu busqueda es algo inusual,por q podria haber varios juan,pero si en el campo Nombre a la hora de registrar insertas el nombre completo por ejemplo HUGO RAFAEL CHAVEZ FRIAS ,reduces la posibilidad de q existan nombres repetidos ,es improbable q se repitan a menos q sean padre e hijo..jajaja....bueno hay te dejo la busqueda como tu la planteas ...te la escribi dentro de un evento MouseClick para q se ejecute cuando hagas click  en el textBox  q escribes el nombre.....tambien puedes escribir el codigo en un boton....

    private void textBox1_MouseClick(object sender, MouseEventArgs e)
            { 
                        string Nombre=textBox1:Text;
                
                        OleDbConnection cnx = new OleDbConnection(@"TU CADENA DE CONEXION");
                        cnx.Open();
                        OleDbCommand com = new OleDbCommand("SELECT Matricula ,Color FROM LeonTabla WHERE Nombre= @Nombre", cnx);
                        com.Parameters.AddWithValue("@Nombre",Nombre);
                        OleDbDataReader dr = com.ExecuteReader();

                      if (dr.Read())
                        {

                            textBox2.Text = dr["Matricula"].ToString(); textBox3.Text = dr["Color"].ToString();
                        }
                        dr.Close();
                        cnx.Close();
       }         


    EFRAIN MEJIAS C VALENCIA - VENEZUELA
    21 martie 2011 22:36
  • claro pero no has respondido dos preguntas claves

    - cuando filtras por juan quien aseguro que habra solo un registro, juanes puede haber miles de registros, cual de todos mostrarias en controels simples como son textbox ?

    - como identificas iniquevocamente cada entidad, o sea puede haber un juan con un DNI determinado que lo diferencia de otro Juan con otro numero de DNI, en tu sistema como se diferencian estas personas

    cuales la clave primaria de la tabla ?

    - como relaciones estas tablas? a simple vista como comentas no parece haber nada que las una o se tiene nombres, tieness colores y matriculas, pero como se relaciona , que campo dice que un color es de tal o cual persona

    aqui es donde juegan la clave primaria de las tablas

     

    sino puedes dar repsuesta a estas rpeguntas no creo que puedas lograr el objetico de obtener lo que planteas

    por eso analizalo y diseña la db para cubrir estos puntos planteados

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    21 martie 2011 23:45
  • MISMO LUEGO ARRASTRO LAS TABLAS PARA PODER NAVEGAR ENTRE LA INFORMACION MEDIANTE EL BINDING NAVIGATOR ! HAY AGREGO DATOS BORRO DATOS ELIMINO DATOS ETC ESO ESTA BIEN PERO TENGO OTRO FORM QUE TIENE UN TEXTBOX Y HAY QUIERO QUE CUANDO ESCRIBA JUAN ME SALGA LA INFORMACION DE ESE JUAN COLOR Y MATRICULA

    consejo diseña previamente la db usando Access desde Office, no hagas todos desde los controles de VS ,estos estan pesnados para desarrollar pero llegan hasta un punto y despeus de ahi debes dar un salto para cubrir necesidades como estas

    has llegado al punto en que el wizard ya no es util, vas a tener que programar algo mas para lograr esto

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    21 martie 2011 23:49