Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda en C# para novato

Estas en el tema de Ayuda en C# para novato en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/01/2009, 17:00
Avatar de Srkuen  
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 0
Ayuda en C# para novato

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 que todavía no esta terminado esta así:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace wfaInicio
{
    public partial class FrmBusquedaPropiedad : Form
    {
        public FrmBusquedaPropiedad()
        {
            InitializeComponent();
        }

        private void BtnMostrar_Click(object sender, EventArgs e)
        {
            if (RBPropiedad.Checked.Equals(true))
            {
                if(Propiedad.Text != "")
                {
                    VGlobales.VHipotecaPp = Propiedad.Text;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Debe introducir un valor para buscar");
                    this.Propiedad.Focus();
                }
            }
            else
            {
                if (RBAnotacion.Checked.Equals(true))
                {
                    if(Anotacion.Text != "")
                    {
                        VGlobales.VHipotecaAn = Anotacion.Text;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Debe introducir un valor para buscar");
                        this.Anotacion.Focus();
                    }
                }
                else
                {
                    if (RBPresentacion.Checked.Equals(true))
                    {
                        if (Presentacion.Text != "")
                        {
                            VGlobales.VHipotecaPr = Presentacion.Text;
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Debe introducir un valor para buscar");
                            this.Presentacion.Focus();
                        }
                    }
                    else
                    {
                        if (RBCredito.Checked.Equals(true))
                        {
                            if (Credito.Text != "")
                            {
                                VGlobales.VHipotecaCr = Credito.Text;
                                FrmBusquedaCredito frmBusCre = new FrmBusquedaCredito();
                                frmBusCre.WindowState = FormWindowState.Normal;
                                frmBusCre.Show();
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("Debe introducir un valor para buscar");
                                this.Credito.Focus();
                            }
                        }
                        else
                        {
                            if (RBInscripcion.Checked.Equals(true))
                            {
                                if (Inscripcion.Text != "")
                                {
                                    VGlobales.VHipotecaIn = Inscripcion.Text;
                                    this.Close();
                                }
                                else
                                {
                                    MessageBox.Show("Debe introducir un valor para buscar");
                                    this.Inscripcion.Focus();
                                }
                            }
                            else
                            {
                                if (RBApellido.Checked.Equals(true))
                                {
                                    if (Apellido.Text != "")
                                    {
                                        VGlobales.VHipotecaAp = Apellido.Text;
                                        FrmBusquedaApellido frmBusApe = new FrmBusquedaApellido();
                                        frmBusApe.WindowState = FormWindowState.Normal;
                                        frmBusApe.Show();
                                        this.Close();
                                    }
                                    else
                                    {
                                        MessageBox.Show("Debe introducir un valor para buscar");
                                        this.Apellido.Focus();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    public class VGlobales
    {
        public static string VHipotecaPr = null;
        public static string VHipotecaAn = null;
        public static string VHipotecaCr = null;
        public static string VHipotecaAp = null;
        public static string VHipotecaIn = null;
        public static string VHipotecaPp = null;
    }
}
y continua en el siguiente post
  #2 (permalink)  
Antiguo 05/01/2009, 17:08
Avatar de Srkuen  
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda en C# para novato

Y en el formulario principal que todavía no he terminado esta así:
[CODE]
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace wfaInicio
{
    public partial class FrmActualizacion : Form
    {
        public FrmActualizacion()
        {
            InitializeComponent();
        }

        private DataTable dt;
        private DataSet ds;
        private SqlDataAdapter da;
        private int fila;
        private SqlConnection con = null;
        private string sCnn = "data source=ITDEV10; Initial catalog=Lalibertad; user id=sa;" +
            "password=123456;";
        private string sCnn2 = "data source=ITDEV10; Initial catalog=CustodyValue; user id=sa;" +
            "password=123456;";

        private void FrmActualizacion_Load(object sender, EventArgs e)
        {
            if (VGlobales.VHipotecaPp != null)
            {
                try
                {
                    con = new SqlConnection(sCnn);
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(
                        "SELECT numfix_s, zoneactiv_n, streetactiv_s, references_s," +
                        "description_s FROM fixassets" +
                        " WHERE numfix_s ='" + VGlobales.VHipotecaPp + "'", con);
                    dt = new DataTable();
                    da.Fill(dt);
                    if (dt.Rows.Count > 0)
                    {
                        fila = 0;
                        MostrarDatos(fila);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error al conectarse a la base de datos:\n" +
                        ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
                finally
                {
                    if (con != null)
                    {
                        con.Close();
                    }
                }
            }
            else
            {
                if (VGlobales.VHipotecaAn != null)
                {
                    try
                    {
                        con = new SqlConnection(sCnn);
                        con.Open();
                        SqlDataAdapter da = new SqlDataAdapter(
                            "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +
                            "fi.references_s, fi.description_s" +
                            " FROM fixassets fi LEFT JOIN mortgage mo" +
                            " ON fi.numfix_s = mo.numfix_s" +
                            " WHERE mo.annot_prev_s ='" + VGlobales.VHipotecaAn + "'", con);
                        dt = new DataTable();
                        da.Fill(dt);
                        if (dt.Rows.Count > 0)
                        {
                            fila = 0;
                            MostrarDatos(fila);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al conectarse a la base de datos:\n" +
                            ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                    }
                    finally
                    {
                        if (con != null)
                        {
                            con.Close();
                        }
                    }
                }
                else
                {
                    if (VGlobales.VHipotecaPr != null)
                    {
                        try
                        {
                            con = new SqlConnection(sCnn);
                            con.Open();
                            SqlDataAdapter da = new SqlDataAdapter(
                                "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +
                                "fi.references_s, fi.description_s FROM fixassets fi " +
                                " LEFT JOIN mortgage mo ON fi.numfix_s = mo.numfix_s" +
                                " JOIN mortage_inscription mi ON mo.numfix_s = mi.numfix_s" +
                                " WHERE mi.num_pres_s = '" + VGlobales.VHipotecaPr + "'", con);
                            dt = new DataTable();
                            da.Fill(dt);
                            if (dt.Rows.Count > 0)
                            {
                                fila = 0;
                                MostrarDatos(fila);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error al conectarse a la base de datos:\n" +
                                ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                        }
                        finally
                        {
                            if (con != null)
                            {
                                con.Close();
                            }
                        }
                    }
y continua
  #3 (permalink)  
Antiguo 05/01/2009, 17:10
Avatar de Srkuen  
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda en C# para novato

y aquí sigue

Código:
else
                    {
                        if (VGlobales.VHipotecaCr != null)
                        {
                            try
                            {
                                con = new SqlConnection(sCnn);
                                con.Open();
                                SqlDataAdapter da = new SqlDataAdapter(
                                    "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +
                                    "fi.references_s, fi.description_s" +
                                    " FROM fixassets fi LEFT JOIN mortgage mo" +
                                    " ON fi.numfix_s = mo.numfix_s JOIN loansxmortgage lm" +
                                    " ON mo.numfix_s = lm.numfix_s JOIN creditos cr " +
                                    " ON lm.cod_cre = cr.cod_cre" +
                                    " WHERE cr.cod_cre = '" + VGlobales.VHipotecaCr + "'", con);
                                dt = new DataTable();
                                da.Fill(dt);
                                if (dt.Rows.Count > 0)
                                {
                                    fila = 0;
                                    MostrarDatos(fila);
                                }
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("Error al conectarse a la base de datos:\n" +
                                    ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                            }
                            finally
                            {
                                if (con != null)
                                {
                                    con.Close();
                                }
                            }
                        }
                        else
                        {
                            if (VGlobales.VHipotecaIn != null)
                            {
                                try
                                {
                                    con = new SqlConnection(sCnn);
                                    con.Open();
                                    SqlDataAdapter da = new SqlDataAdapter(
                                        "SELECT fi.numfix_s, fi.zoneactiv_n, fi.streetactiv_s," +
                                        "fi.references_s, fi.description_s" +
                                        " FROM fixassets fi LEFT JOIN mortgage mo" +
                                        " ON fi.numfix_s = mo.numfix_s" +
                                        " JOIN mortage_inscription mi ON mo.numfix_s = mi.numfix_s" +
                                        " WHERE mi.num_regis_s ='" + VGlobales.VHipotecaIn + "'", con);
                                    dt = new DataTable();
                                    da.Fill(dt);
                                    if (dt.Rows.Count > 0)
                                    {
                                        fila = 0;
                                        MostrarDatos(fila);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show("Error al conectarse a la base de datos:\n" +
                                        ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                                }
                                finally
                                {
                                    if (con != null)
                                    {
                                        con.Close();
                                    }
                                }
                            }
                            else
                            {
                                if (VGlobales.VHipotecaAp != null)
                                {
                                    try
                                    {
                                        con = new SqlConnection(sCnn);
                                        con.Open();
                                        SqlDataAdapter da = new SqlDataAdapter(
                                            "SELECT RTRIM(LTRIM(cu.pri_ape))+' '+RTRIM(LTRIM(cu.seg_ape))" +
                                            "+' '+RTRIM(LTRIM(cu.ter_ape)),RTRIM(LTRIM(cu.nombre))+' '+" +
                                            "RTRIM(LTRIM(cu.seg_nom)),fi.numfix_s, fi.zoneactiv_n," +
                                            "fi.streetactiv_s, fi.references_s, fi.description_s FROM" +
                                            " fixassets fi LEFT JOIN customerXfixassets cf ON fi.numfix_s = cf.numfix_s" +
                                            " JOIN customer cu ON cf.num_cli = cu.num_cli" +
                                            " WHERE cu.pri_ape = '" + VGlobales.VHipotecaAp + "'", con);
                                        dt = new DataTable();
                                        da.Fill(dt);
                                        if (dt.Rows.Count > 0)
                                        {
                                            fila = 0;
                                            MostrarDatos(fila);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show("Error al conectarse a la base de datos:\n" +
                                            ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                                    }
                                    finally
                                    {
                                        if (con != null)
                                        {
                                            con.Close();
                                        }
                                    }
                                }
                                else
                                {
                                    try
                                    {
                                        con = new SqlConnection(sCnn);
                                        con.Open();
                                        string sSel = "SELECT numfix_s, zoneactiv_n, streetactiv_s," + 
                                                      "references_s, description_s" +
                                                      " FROM fixassets" + 
                                                      " WHERE numfix_s ='33000038'";
                                        da = new SqlDataAdapter(sSel, sCnn);
                                        dt = new DataTable();
                                        da.Fill(dt);
                                        if (dt.Rows.Count > 0)
                                        {
                                            fila = 0;
                                            MostrarDatos(fila);
                                        }

                                        MessageBox.Show("Conexion establecida");
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show("Error al conectarse a la base de datos:\n" +
                                            ex.Message, "Conectar con la base", MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                                    }
                                    finally
                                    {
                                        if (con != null)
                                        {
                                            con.Close();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
        }

        private void MostrarDatos(int f)
        {
            DataRow dr = dt.Rows[fila];
            Propiedad.Text = dr["numfix_s"].ToString();
            Zona.Text = dr["zoneactiv_n"].ToString();
            Direccion.Text = dr["streetactiv_s"].ToString();
            Referencia.Text = dr["references_s"].ToString();
            Descripcion.Text = dr["description_s"].ToString();
        }

        private void toolStripButton1_Click_1(object sender, EventArgs e)
        {
            FrmBusquedaPropiedad frmBusPro = new FrmBusquedaPropiedad();
            frmBusPro.WindowState = FormWindowState.Normal;
            frmBusPro.Show();
        }
    }
}
Se me conecta correctamente el formulario con el dato 33000038 que pongo directamente para probar la conexión y si funciona.

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.
  #4 (permalink)  
Antiguo 06/01/2009, 09:37
Avatar de Srkuen  
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda en C# para novato

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.
  #5 (permalink)  
Antiguo 08/01/2009, 07:21
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
Respuesta: Ayuda en C# para novato

Hola esta solucion es como mejor teniendo en cuenta que cuando buscas algo podes utilizar un formulario con datos que ya ha ingresado el usuario y por ende si cierras la ventana pues se pierden esos datos.

la idea es la siguiente en tu form principal llamas al nuevo formulario de la siguiente manera

frmbuscar.ShowDialog(this);

frmbuscar es tu formulario de busqueda, el ShowDialog es que lo muestre y no deje que se interactue con el form padre hasta que se termine la busqueda y el this es el formulario padre que se envia como parametro para que el form buscar quede con ese from padre de dueño


luego en el form dueño creas una propiedad donde se va a recibir la busqueda
y finalmente lo que haces es crear una variable y asignarle la propiedad Owner de tu form buscar
y listo

Cita:
Formularios Frm = (Formularios)this.Owner;
Frm.txt= Valor;
this.Close();
__________________
El leer te da el poder de mejorar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:54.