| 
	
		|  Autor | Tema: C# 3 - SQL Server 2008 - binding en textbox  (Leído 9,072 veces) |  
	| 
			| 
					
						| Beowulf 
								
								 Desconectado 
								Mensajes: 46
								
								   | 
 
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 
								Mensajes: 559
								
								 
								Erepublik.com
								
								
								
								
								
								   | 
 
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 
								Mensajes: 46
								
								   | 
 
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 
								Mensajes: 2.633
								
								 
								La sonrisa es la mejor forma de afrontar las cosas
								
								
								
								
								
								     | 
 
        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;         }     } 
Usa las etiquetas code    ([ 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:         /// Siempre queda "vivo"        BindingSource RelBindinSource = new  BindingSource();         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"]);            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;            //            // deberia funcionar :P            txtPrueba.DataBindings.Add(new  Binding("Text" , RelBindinSource, "eccod" , true));            //            bindingNavigator1.BindingSource = Obra.bindingSource1;         }    } 
 Al menos es eso desde mi punto de vista, tendria que probar |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Beowulf 
								
								 Desconectado 
								Mensajes: 46
								
								   | 
 
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 
								Mensajes: 46
								
								   | 
 
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 
								Mensajes: 2.633
								
								 
								La sonrisa es la mejor forma de afrontar las cosas
								
								
								
								
								
								     | 
 
  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 
								Mensajes: 46
								
								   | 
 
Gracias |  
						| 
								|  |  
								|  |  En línea | 
 
 La navaja de Occam: la explicación mas simple suele ser que alguien la ha cagado (G. Hause) |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Conectar java con sql server 2008 Java
 | Rijhording | 2 | 18,078 |  25 Febrero 2011, 16:21 pm por Rijhording
 |  
						|   |   | ASP:NET - SQL SERVER R2 2008 - generar reporte URGENTE!!! Bases de Datos
 | there38 | 0 | 3,685 |  7 Junio 2011, 05:39 am por there38
 |  
						|   |   | Correo Windos Server 2008 Ayuda... Redes
 | MARTOY | 1 | 4,380 |  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 | 4,926 |  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 | 13,999 |  27 Octubre 2012, 03:08 am por Brian1511
 |    |