elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C# 3 - SQL Server 2008 - binding en textbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C# 3 - SQL Server 2008 - binding en textbox  (Leído 7,559 veces)
Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
C# 3 - SQL Server 2008 - binding en textbox
« en: 10 Marzo 2010, 00:48 am »

Saludos a todo:
 les comento estoy realizando una aplicacion (basica), realizo la conexion con el servidor usando SqlDataAdapter y SqlConnection, por medio de un comando cargo un dataset con dos tablas, lugo cree una ralacion todo a travez de codigo (dataset no tipado), cuando lo voy a usar todo funciona, un bindingNavigator, dos  BindingSource unidos, pero cuando en un textbox quiero mostar un campo del segundo BindingSource, que tiene la relacion , se desabilita, pero si esto lo hago con un dataGridView funciona perfecto, pero quiero usar el textbox.
Al textbox lo uso de la siguiente manera:
txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true))
Cualquier ayuda es bien recibida.


En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #1 en: 10 Marzo 2010, 03:26 am »

Aparentemente todo esta bien, muestrame el code del form para ver mejor el fallo...

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


En línea


Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #2 en: 10 Marzo 2010, 12:58 pm »

Este fue mi ultimo intento:
//FORM con dos dos dataGrid y tres textbox
    public partial class ObraAltas : Form
    {
        private Dax Obra;
        public ObraAltas()
        {
            Obra = new Dax();
            Obra.conection();
            InitializeComponent();
           
            Obra.LeerDatos2("SELECT medmat,mednom,medecv FROM Medicos ","MEDICOS");
            Obra.LeerDatos2("SELECT eccod,ecestado,descrp FROM Ecivil", "ESTACV");
        }

        private void ObraAltas_Load(object sender, EventArgs e)
        {
            Carga();
        }
        private void Carga()
        {
            DataColumn DCPadre = Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"];
            DataColumn DCHijo = Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"];
            DataRelation Ralation = Obra.daxDataSet.Relations.Add("DAX", Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"], Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"]);
            BindingSource RelBindinSource = new BindingSource();
            RelBindinSource.DataSource = Obra.bindingSource1;
            Obra.bindingSource1.DataSource = Obra.daxDataSet;
            Obra.bindingSource1.DataMember = "ESTACV";
            RelBindinSource.DataMember = "DAX";

           
            txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true));
            txtLoc.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "ecestado", true));
            dataGridView1.DataSource = Obra.bindingSource1;
            //FUNCIONA
            dataGridView2.DataSource = RelBindinSource;
            //
            //NO FUNCIONA   
            txtPrueba.DataBindings.Add(new Binding("Text", RelBindinSource, "eccod", true));
            //
            bindingNavigator1.BindingSource = Obra.bindingSource1;
                   
        }

    }

Para buscar el error construi una clase y despeje dinstintas funciones que teoricamente me seria utiles despues
las función leer datos esta en la case Dax y tiene el siguiente codigo:

public void LeerDatos2(string strSQL, string strTabla)
        {
            this.daxAdapter = new SqlDataAdapter(strSQL, this.cnSql);
            SqlCommandBuilder cb = new SqlCommandBuilder(this.daxAdapter);
            cb.QuotePrefix = "[";
            cb.QuoteSuffix = "]";
            this.daxAdapter.UpdateCommand = cb.GetUpdateCommand();
            this.daxAdapter.InsertCommand = cb.GetInsertCommand();
            this.daxAdapter.DeleteCommand = cb.GetDeleteCommand();

            this.daxAdapter.Fill(this.daxDataSet, strTabla);
            this.bindingSource1.DataSource = this.daxDataSet;
     
        }
Las tablas estan bien (creo), al igual que las conexiones por eso no incluyo el codigo
En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #3 en: 10 Marzo 2010, 13:29 pm »

Código
  1.        private void ObraAltas_Load(object sender, EventArgs e)
  2.        {
  3.            Carga();
  4.        }
  5.        private void Carga()
  6.        {
  7.            DataColumn DCPadre = Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"];
  8.            DataColumn DCHijo = Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"];
  9.            DataRelation Ralation = Obra.daxDataSet.Relations.Add("DAX", Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"], Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"]);
  10.  
  11.            /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  12.            BindingSource RelBindinSource = new BindingSource();
  13.            /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  14.  
  15.            RelBindinSource.DataSource = Obra.bindingSource1;
  16.            Obra.bindingSource1.DataSource = Obra.daxDataSet;
  17.            Obra.bindingSource1.DataMember = "ESTACV";
  18.  
  19.            RelBindinSource.DataMember = "DAX";
  20.  
  21.  
  22.            txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true));
  23.            txtLoc.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "ecestado", true));
  24.            dataGridView1.DataSource = Obra.bindingSource1;
  25.            //FUNCIONA
  26.            dataGridView2.DataSource = RelBindinSource;
  27.            //
  28.            //NO FUNCIONA    
  29.            txtPrueba.DataBindings.Add(new Binding("Text", RelBindinSource, "eccod", true));
  30.            //
  31.            bindingNavigator1.BindingSource = Obra.bindingSource1;
  32.  
  33.        }
  34.  
  35.    }
  36.  

Usa las etiquetas code :P ([ code=charp ])

Nose, pero para mi seria que el DataBinding se destruye al terminar el metodo carga, el datagrid lo "copia" en cambio el textbox pierde la referencia porque se borro de la memoria (al menos eso pasa en otros ambitos)

Lo que si, declararia el Binding Source en el formulario y no en los metodos. quedando algo asi:

Código
  1.        /// Siempre queda "vivo"
  2.        BindingSource RelBindinSource = new BindingSource();
  3.  
  4.        private void ObraAltas_Load(object sender, EventArgs e)
  5.        {
  6.            Carga();
  7.        }
  8.        private void Carga()
  9.        {
  10.            DataColumn DCPadre = Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"];
  11.            DataColumn DCHijo = Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"];
  12.            DataRelation Ralation = Obra.daxDataSet.Relations.Add("DAX", Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"], Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"]);
  13.            RelBindinSource.DataSource = Obra.bindingSource1;
  14.            Obra.bindingSource1.DataSource = Obra.daxDataSet;
  15.            Obra.bindingSource1.DataMember = "ESTACV";
  16.  
  17.            RelBindinSource.DataMember = "DAX";
  18.  
  19.  
  20.            txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true));
  21.            txtLoc.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "ecestado", true));
  22.            dataGridView1.DataSource = Obra.bindingSource1;
  23.            //FUNCIONA
  24.            dataGridView2.DataSource = RelBindinSource;
  25.            //
  26.            // deberia funcionar :P
  27.            txtPrueba.DataBindings.Add(new Binding("Text", RelBindinSource, "eccod", true));
  28.            //
  29.            bindingNavigator1.BindingSource = Obra.bindingSource1;
  30.  
  31.        }
  32.    }
  33.  

Al menos es eso desde mi punto de vista, tendria que probar
En línea

Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #4 en: 10 Marzo 2010, 15:36 pm »

Se me paso lo de code=csahrp
« Última modificación: 10 Marzo 2010, 23:44 pm por Beowulf » En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #5 en: 10 Marzo 2010, 15:41 pm »

Discupen por hacer la cosas rapido las hice mal.  :-[
Esto es lo que quise postear:
raul338  los cambios que me sugeriste los probe, queda mejor el codigo pero no resolvio el problema, pero mi hizo revizar mejor el codigo y encontre la falla, estoy acostumbrado a otros leguajes que al hacer una relacion quedan todos los campos de las tablas relacionadas (si se lo indica asi en SQL) asumi que seria igual: txtPrueba.DataBindings.Add(new Binding("Text", Obra.RelBindinSource, "CAMPO", true))El campo que estaba usando pertenecia a la tabla principal y no a la tabla relacionada, cuando puse un campo de la segunda tabla todo funciono perfactamente. Gracias por la ayuda
En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #6 en: 10 Marzo 2010, 18:37 pm »

:) para eso estamos en el foro, para ayudar y que nos ayuden

En cuanto lo del doble post, tienes el boton modificar arriba de los ultimos mensajes tuyo para evitarlos, ya sea agregar cosas, editar accidentes o simplemente decir que lo editaste xD
En línea

Beowulf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: C# 3 - SQL Server 2008 - binding en textbox
« Respuesta #7 en: 10 Marzo 2010, 23:45 pm »

Gracias
En línea

La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Conectar java con sql server 2008
Java
Rijhording 2 17,093 Último mensaje 25 Febrero 2011, 16:21 pm
por Rijhording
ASP:NET - SQL SERVER R2 2008 - generar reporte URGENTE!!!
Bases de Datos
there38 0 2,996 Último mensaje 7 Junio 2011, 05:39 am
por there38
Correo Windos Server 2008 Ayuda...
Redes
MARTOY 1 3,416 Último mensaje 15 Junio 2011, 05:04 am
por ThonyMaster
Ayuda:Asignacion de variables a un textbox de una base de datos en VB.NET(2008)
.NET (C#, VB.NET, ASP)
pilotillo 3 3,710 Último mensaje 6 Octubre 2011, 10:05 am
por pilotillo
Duda de textbox en vb.Net 2008 « 1 2 3 »
.NET (C#, VB.NET, ASP)
Brian1511 23 9,370 Último mensaje 27 Octubre 2012, 03:08 am
por Brian1511
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines