Autor
|
Tema: C# 3 - SQL Server 2008 - binding en textbox (Leído 8,786 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
|
17,827
|
25 Febrero 2011, 16:21 pm
por Rijhording
|
|
|
ASP:NET - SQL SERVER R2 2008 - generar reporte URGENTE!!!
Bases de Datos
|
there38
|
0
|
3,572
|
7 Junio 2011, 05:39 am
por there38
|
|
|
Correo Windos Server 2008 Ayuda...
Redes
|
MARTOY
|
1
|
4,074
|
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,658
|
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
|
12,730
|
27 Octubre 2012, 03:08 am
por Brian1511
|
|