Novato les solicita su valiosa ayuda.

Moderador: raul338

C#, tambien llamado C Sharp

Novato les solicita su valiosa ayuda.

Notapor srkuen » Lun Ene 05, 2009 5:11 pm

Saludos a tod@s

Estoy haciendo un proyecto en C# (Visual Studio 2008). Y problema es el siguiente: tengo dos formularios y los identificare de la siguiente manera:

Formulario principal donde se muestran todos los resultados.
Formulario de búsqueda.

Lo que necesito hacer es que al introducir el parámetro de búsqueda en el formulario de búsqueda sean mostrados los datos encontrados en la base de datos en el formulario principal.

Si puedo realizar la conexión a la base de datos (la cual esta en SQL Server 2005).

Un ejemplo de cómo lo tengo es el siguiente:

En el formulario de búsqueda esta así (En el cual hay 6 formas de buscar los datos):

Código: Seleccionar todo
  1. using System;

  2. using System.Collections.Generic;

  3. using System.ComponentModel;

  4. using System.Data;

  5. using System.Drawing;

  6. using System.Linq;

  7. using System.Text;

  8. using System.Windows.Forms;

  9. using System.Data.SqlClient;

  10.  

  11. namespace wfaInicio

  12. {

  13.     public partial class FrmBusquedaPropiedad : Form

  14.     {

  15.         public FrmBusquedaPropiedad()

  16.         {

  17.             InitializeComponent();

  18.         }

  19.  

  20.         private void BtnMostrar_Click(object sender, EventArgs e)

  21.         {

  22.             if (RBPropiedad.Checked.Equals(true))

  23.             {

  24.                 if(Propiedad.Text != "")

  25.                 {

  26.                     VGlobales.VHipotecaPp = Propiedad.Text;

  27.                     this.Close();

  28.                 }

  29.                 else

  30.                 {

  31.                     MessageBox.Show("Debe introducir un valor para buscar");

  32.                     this.Propiedad.Focus();

  33.                 }

  34.             }

  35.             else

  36.             {

  37.                 if (RBAnotacion.Checked.Equals(true))

  38.                 {

  39.                     if(Anotacion.Text != "")

  40.                     {

  41.                         VGlobales.VHipotecaAn = Anotacion.Text;

  42.                         this.Close();

  43.                     }

  44.                     else

  45.                     {

  46.                         MessageBox.Show("Debe introducir un valor para buscar");

  47.                         this.Anotacion.Focus();

  48.                     }

  49.                 }

  50.                 else

  51.                 {

  52.                     if (RBPresentacion.Checked.Equals(true))

  53.                     {

  54.                         if (Presentacion.Text != "")

  55.                         {

  56.                             VGlobales.VHipotecaPr = Presentacion.Text;

  57.                             this.Close();

  58.                         }

  59.                         else

  60.                         {

  61.                             MessageBox.Show("Debe introducir un valor para buscar");

  62.                             this.Presentacion.Focus();

  63.                         }

  64.                     }

  65.                     else

  66.                     {

  67.                         if (RBCredito.Checked.Equals(true))

  68.                         {

  69.                             if (Credito.Text != "")

  70.                             {

  71.                                 VGlobales.VHipotecaCr = Credito.Text;

  72.                                 FrmBusquedaCredito frmBusCre = new FrmBusquedaCredito();

  73.                                 frmBusCre.WindowState = FormWindowState.Normal;

  74.                                 frmBusCre.Show();

  75.                                 this.Close();

  76.                             }

  77.                             else

  78.                             {

  79.                                 MessageBox.Show("Debe introducir un valor para buscar");

  80.                                 this.Credito.Focus();

  81.                             }

  82.                         }

  83.                         else

  84.                         {

  85.                             if (RBInscripcion.Checked.Equals(true))

  86.                             {

  87.                                 if (Inscripcion.Text != "")

  88.                                 {

  89.                                     VGlobales.VHipotecaIn = Inscripcion.Text;

  90.                                     this.Close();

  91.                                 }

  92.                                 else

  93.                                 {

  94.                                     MessageBox.Show("Debe introducir un valor para buscar");

  95.                                     this.Inscripcion.Focus();

  96.                                 }

  97.                             }

  98.                             else

  99.                             {

  100.                                 if (RBApellido.Checked.Equals(true))

  101.                                 {

  102.                                     if (Apellido.Text != "")

  103.                                     {

  104.                                         VGlobales.VHipotecaAp = Apellido.Text;

  105.                                         FrmBusquedaApellido frmBusApe = new FrmBusquedaApellido();

  106.                                         frmBusApe.WindowState = FormWindowState.Normal;

  107.                                         frmBusApe.Show();

  108.                                         this.Close();

  109.                                     }

  110.                                     else

  111.                                     {

  112.                                         MessageBox.Show("Debe introducir un valor para buscar");

  113.                                         this.Apellido.Focus();

  114.                                     }

  115.                                 }

  116.                             }

  117.                         }

  118.                     }

  119.                 }

  120.             }

  121.         }

  122.     }

  123.  

  124.     public class VGlobales

  125.     {

  126.         public static string VHipotecaPr = null;

  127.         public static string VHipotecaAn = null;

  128.         public static string VHipotecaCr = null;

  129.         public static string VHipotecaAp = null;

  130.         public static string VHipotecaIn = null;

  131.         public static string VHipotecaPp = null;

  132.     }

  133. }



Y en el formulario principal que todavía no he terminado tengo lo siguiente:

Código: Seleccionar todo
  1. using System;

  2. using System.Collections.Generic;

  3. using System.ComponentModel;

  4. using System.Data;

  5. using System.Drawing;

  6. using System.Linq;

  7. using System.Text;

  8. using System.Windows.Forms;

  9. using System.Data.SqlClient;

  10.  

  11. namespace wfaInicio

  12. {

  13.     public partial class FrmActualizacion : Form

  14.     {

  15.         public FrmActualizacion()

  16.         {

  17.             InitializeComponent();

  18.         }

  19.  

  20.         private DataTable dt;

  21.         private DataSet ds;

  22.         private SqlDataAdapter da;

  23.         private int fila;

  24.         private SqlConnection con = null;

  25.         private string sCnn = "data source=ITDEV10; Initial catalog=Lalibertad; user id=sa;" +

  26.             "password=123456;";

  27.  

  28.         private void FrmActualizacion_Load(object sender, EventArgs e)

  29.         {

  30.             if (VGlobales.VHipotecaPp != null)

  31.             {

  32.                 try

  33.                 {

  34.                     con = new SqlConnection(sCnn);

  35.                     con.Open();

  36.                     SqlDataAdapter da = new SqlDataAdapter(

  37.                         "SELECT numfix_s, zoneactiv_n, streetactiv_s, references_s," +

  38.                         "description_s FROM fixassets" +

  39.                         "WHERE numfix_s ='" + VGlobales.VHipotecaPp + "'", con);

  40.                     dt = new DataTable();

  41.                     da.Fill(dt);

  42.                     if (dt.Rows.Count > 0)

  43.                     {

  44.                         fila = 0;

  45.                         MostrarDatos(fila);

  46.                     }

  47.  

  48.                     MessageBox.Show("Conexion establecida");

  49.                 }

  50.                 catch (Exception ex)

  51.                 {

  52.                     MessageBox.Show("Error al conectarse a la base de datos:\n" +

  53.                         ex.Message, "Conectar con la base", MessageBoxButtons.OK,

  54.                         MessageBoxIcon.Error);

  55.                 }

  56.                 finally

  57.                 {

  58.                     if (con != null)

  59.                     {

  60.                         con.Close();

  61.                     }

  62.                 }

  63.             }

  64.             else

  65.             {

  66.                 if (VGlobales.VHipotecaAn != null)

  67.                 {

  68.                     try

  69.                     {

  70.                         con = new SqlConnection(sCnn);

  71.                         con.Open();

  72.                         SqlDataAdapter da = new SqlDataAdapter(

  73.                             "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +

  74.                             "fi.references_s, fi.description_s" +

  75.                             "FROM fixassets fi LEFT JOIN mortgage mo" +

  76.                             "ON fi.numfix_s = mo.numfix_s" +

  77.                             "WHERE mo.annot_prev_s ='" + VGlobales.VHipotecaAn + "'", con);

  78.                         dt = new DataTable();

  79.                         da.Fill(dt);

  80.                         if (dt.Rows.Count > 0)

  81.                         {

  82.                             fila = 0;

  83.                             MostrarDatos(fila);

  84.                         }

  85.  

  86.                         MessageBox.Show("Conexion establecida");

  87.                     }

  88.                     catch (Exception ex)

  89.                     {

  90.                         MessageBox.Show("Error al conectarse a la base de datos:\n" +

  91.                             ex.Message, "Conectar con la base", MessageBoxButtons.OK,

  92.                             MessageBoxIcon.Error);

  93.                     }

  94.                     finally

  95.                     {

  96.                         if (con != null)

  97.                         {

  98.                             con.Close();

  99.                         }

  100.                     }

  101.                 }

  102.                 else

  103.                 {

  104.                     if (VGlobales.VHipotecaPr != null)

  105.                     {

  106.                         try

  107.                         {

  108.                             con = new SqlConnection(sCnn);

  109.                             con.Open();

  110.                             SqlDataAdapter da = new SqlDataAdapter(

  111.                                 "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +

  112.                                 "fi.references_s, fi.description_s FROM fixassets fi " +

  113.                                 "LEFT JOIN mortgage mo ON fi.numfix_s = mo.numfix_s" +

  114.                                 "JOIN mortage_inscription mi ON mo.numfix_s = mi.numfix_s" +

  115.                                 "WHERE mi.num_pres_s = '" + VGlobales.VHipotecaPr + "'", con);

  116.                             dt = new DataTable();

  117.                             da.Fill(dt);

  118.                             if (dt.Rows.Count > 0)

  119.                             {

  120.                                 fila = 0;

  121.                                 MostrarDatos(fila);

  122.                             }

  123.  

  124.                             MessageBox.Show("Conexion establecida");

  125.                         }

  126.                         catch (Exception ex)

  127.                         {

  128.                             MessageBox.Show("Error al conectarse a la base de datos:\n" +

  129.                                 ex.Message, "Conectar con la base", MessageBoxButtons.OK,

  130.                                 MessageBoxIcon.Error);

  131.                         }

  132.                         finally

  133.                         {

  134.                             if (con != null)

  135.                             {

  136.                                 con.Close();

  137.                             }

  138.                         }

  139.                     }

  140.                 }

  141.             }

  142.            

  143.         }

  144.  

  145.         private void MostrarDatos(int f)

  146.         {

  147.  

  148.             DataRow dr = dt.Rows[fila];

  149.             Propiedad.Text = dr["numfix_s"].ToString();

  150.             Zona.Text = dr["zoneactiv_n"].ToString();

  151.             Direccion.Text = dr["streetactiv_s"].ToString();

  152.             Referencia.Text = dr["references_s"].ToString();

  153.             Descripcion.Text = dr["description_s"].ToString();

  154.         }

  155.  

  156.         private void toolStripButton1_Click_1(object sender, EventArgs e)

  157.         {

  158.             FrmBusquedaPropiedad frmBusPro = new FrmBusquedaPropiedad();

  159.             frmBusPro.WindowState = FormWindowState.Normal;

  160.             frmBusPro.Show();

  161.         }

  162.     }

  163. }



Por lo que solicito su valiosa ayuda de que puedo hacer, que error tengo o que link me recomendarían leer para poder resolver dicho problema. (¿No se si necesitarían que colocara las imágenes de los formularios?).

De antemano muchas gracias por su ayuda y disculpas por perder su tiempo.
srkuen
Novato
Novato
 
Mensajes: 3
Registrado: Lun Ene 05, 2009 2:15 pm


Re: Novato les solicita su valiosa ayuda.

Notapor srkuen » Mar Ene 06, 2009 10:36 am

Saludos a la comunidad!

Pongo este post para informarles que ya pude resolver el problema, lo que hice fue que al momento de llamar el formulario de busqueda cerraba el otro formulario y despues lo vuelvo a llamar desde el formulario de busqueda. (Bueno esto es lo que se me ha ocurrido por el momento, mientras encuentro una forma de pasarle los datos sin cerrar al formulario principal.)

Gracias de antemano.
srkuen
Novato
Novato
 
Mensajes: 3
Registrado: Lun Ene 05, 2009 2:15 pm


Re: Novato les solicita su valiosa ayuda.

Notapor gonso » Jue Ene 08, 2009 4:30 pm

A ver si te ayuda...

Puedes eliminar la clase estática que almacena los string de tus variables...

Para almacenar cada una de esas variables lo puedes hacer como atributos de tu formulario de búsqueda, los declaras como private, declaras la propiedad get para cada atributo como public (para poder acceder a ellos) y la set como protected o private (para que sólo se pueda establecer desde el formulario de búsqueda). Por ejemplo dentro del formulario de búsqueda declaras:
Código: Seleccionar todo
  1. private string VHipotecaPr;

  2. public string vHipotecaPr

  3. {

  4.    get

  5.        {

  6.             return VHipotecaPr;

  7.         }

  8.    protected set

  9.         {

  10.             VHipotecaPr=value;

  11.          }

  12. }

  13.  



Si tienes un cuadro de texto (Texto1) en el que introduces el valor... a través de un evento (bien cuando pincha un botón para validar, o bien cuando el cuadro de texto pierde el foco, o lo que sea) haces que el valor de VHipotecaPr sea igual a lo escrito en la caja de texto... vHipotecaPr = Texto1.Text;

Ahora simplemente desde tu formulario principal , tal y como has abierto el formulario de búsqueda:
FrmBusquedaPropiedad frmBusPro = new FrmBusquedaPropiedad();
frmBusPro.WindowState = FormWindowState.Normal;
frmBusPro.Show();


puedes acceder a tu variable VHipotecaPr del formulario de búsqueda con la instrucción "frmBusPro.vHipotecaPr"
Podrías crear tus métodos para comprobar que no estuviera vacía la cadena si ese fuera tu propósito.

Ya no tienes que cerrar nada para poder operar.

Espero que te sirva.

Nota: Fíjate que el atributo (VHipotecaPr) y la Propiedad (vHipotecaPr) se diferencian en la mayúscula inicial (C# es sensible a mayúsculas y dos variables no pueden tener el mismo nombre...)
gonso
Usuario Activo
Usuario Activo
 
Mensajes: 44
Registrado: Dom Nov 05, 2006 4:00 am


    

Volver a C#

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados