none
Utilizar variables de una clase en otra RRS feed

  • Pregunta

  • Hola a todos,

    Les comento, tengo unas variables parametrizadas en un formulario que fueron tomadas de una base de datos. En dicho formulario puedo utilizarlas lo más bien sin problema, como por ejemplo para mostrarlas en un MessageBox, un label, etc.

    Lo que necesito es encontrar la forma de poder utilizarlas (o sea, los valores que contienen) en otro formulario que abro después (también, para mostrarlas en los controles que mencioné antes).

    f1 es una instancia del formulario donde todo funciona OK.

          f1.conexionMiMercadito = new SqlConnection(f1.conexion);      
    SqlCommand ConsultaMiMercadito = new SqlCommand("SELECT * FROM ingreso WHERE (usuario=@usuario AND pass=@pass)", f1.conexionMiMercadito);
    f1.conexionMiMercadito.Open();

    //Parametrización de la consulta por el nombre de usuario
    SqlParameter parametroUsuario = new SqlParameter();
    parametroUsuario.ParameterName = "@usuario";
    parametroUsuario.Value = "ACÁ QUIERO QUE APAREZCA EL VALOR DEL CAMPO usuario DE LA BASE DE DATOS";
    ConsultaMiMercadito.Parameters.Add(parametroUsuario);

    //Parametrización de la consulta por la contraseña
    SqlParameter parametroPass = new SqlParameter();
    parametroPass.ParameterName = "@pass";
    parametroPass.Value = "ACÁ QUIERO QUE APAREZCA EL VALOR DEL CAMPO pass DE LA BASE DE DATOS";
    ConsultaMiMercadito.Parameters.Add(parametroPass);
    Espero sus comentarios, saludos!

     


    Gabriel A. Cánepa
    lunes, 8 de agosto de 2011 20:52

Respuestas

  • hola

    entonces es como habia pensado, es informacion global que necesites tener disponible para toda la aplciacion

    en ese caso el link que puse aplcia perfecto

    si desde el dialogo de login pones la info en la clase que implementas con el patron singleton, podras luego accederla desde el otro form sin problemas

    es mas desde toda la aplciacion podras acceder a esta informacion, ana lzia el articulo aplcia muy bien por lo que comentas

     

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de agosto de 2011 12:35

Todas las respuestas

  • Hola pues no he entendido bien tu problema, pero te dejo un post de mi blog en el hable acerca de como pasar info entre dos win forms:

    http://nicolocodev.wordpress.com/2011/04/13/how-to-%C2%BFcomo-pasar-datos-entre-dos-windows-forms/

     

    Y te dejo este otro en el que expongo como pasar datos de un form hijo a un form padre:

    http://nicolocodev.wordpress.com/2011/05/17/howto-pasar-datos-de-form-hijo-a-form-padre/

     

    Espero te sean de utilidad, saludos


    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Leader Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    martes, 9 de agosto de 2011 1:34
  • hola

    lo que no entendi es que tipo de informacion es esta que mentienes en el primer form, si es algo que se acercaria a configuracion, o es algo de input del usuario en al seleccion

    si es algo de configuracion podrias ponerla global para accederla desde distintos forms

    [Winforms] Singleton - Pasar datos entre formularios

     

    pero no se si entendi del todo el planteo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de agosto de 2011 5:21
  • Leandro, lamento no haber sido muy claro en mi planteo, lo reconozco, y encima cuando pegué el código (aunque marqué que era de C# en el menú de Insertar código al iniciar una pregunta nueva) salió sin formato y todo en una sola línea.

    Te cuento: el primer formulario es un simple login, con usuario y contraseña. La consulta a la base de datos está parametrizada porque, si bien la aplicación es muy modesta en este momento, aspiro a que crezca y deseo evitar desde el inicio la posibilidad de una inyección SQL.

    Una vez que se produce la validación del formulario, se muestra un mensaje de bienvenida (en el caso de validación correcta) o uno de error si falló la autenticación del usuario.

    Inclusive he conseguido (como todo este código -hasta acá- está en el Form1) que en el mensaje de bienvenida se muestre un mensaje personalizado: dice Bienvenido en el caso de que el usuario sea de sexo masculino y Bienvenida en el caso que sea mujer. También en el título del mismo MessageBox puedo colocar el rol de cada usuario (en el futuro tengo pensado asignar distintos permisos, habilitando o deshabilitando controles en el Form2 de acuerdo a dichos permisos).

    Luego de cerrar el MessageBox con el mensaje de bienvenida, se abre el Form2, que es donde necesito tener disponibles los valores de las variables parametrizadas en el Form1, a saber, al menos @usuario, para por ejemplo, mostrar en el título del dicho formulario el nombre del usuario que acaba de iniciar sesión.

    Te adjunto una captura del MessageBox de bienvenida. Y desde ya muchísimas gracias por tu ayuda, siempre me resulta muy útil.

    Saludos!


    Gabriel A. Cánepa
    martes, 9 de agosto de 2011 11:46
  • Nicolás, te agradezco por tu tiempo y atención. Me voy a poner a revisar el recurso que me pasaste.

    Más abajo, luego de la respuesta de Leandro, expliqué mejor el problema (porque encima en mi mensaje original el código salió sin formato y en una sola línea) y adjunté una captura de pantalla del programa funcionando hasta donde lo he podido hacer funcionar.

    Te mando un abrazo desde Argentina.


    Gabriel A. Cánepa
    martes, 9 de agosto de 2011 11:48
  • hola

    entonces es como habia pensado, es informacion global que necesites tener disponible para toda la aplciacion

    en ese caso el link que puse aplcia perfecto

    si desde el dialogo de login pones la info en la clase que implementas con el patron singleton, podras luego accederla desde el otro form sin problemas

    es mas desde toda la aplciacion podras acceder a esta informacion, ana lzia el articulo aplcia muy bien por lo que comentas

     

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de agosto de 2011 12:35
  • Leandro, funcionó de las mil maravillas. Te adjunto una imagen donde se ve el Form2 (todavía está crudo, por decirlo de una manera=)), pero que muestra que siguiendo tu sugerencia todo anduvo espectacular!

    Me resta profundizar en la función que realiza la clase Events.cs y sus métodos (no había escuchado del CompleteHandler). Pero bueno, ¡gracias a vos estoy encaminado!

    Saludos!


    Gabriel A. Cánepa
    martes, 9 de agosto de 2011 14:31
  • ese CompleteHandler es un evento que podrias usar para notificar a otra ventana

     

    pero es algo que tu creas, es opcional si lo necesitas


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 9 de agosto de 2011 16:05