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

DataSet -> Adaptador -> Update

Estas en el tema de DataSet -> Adaptador -> Update en el foro de .NET en Foros del Web. Estamos teniendo ciertos problemillas al actualizar los datos existentes en un DataSet cargado en memoria a la base de datos... al realizar un comando de ...
  #1 (permalink)  
Antiguo 24/04/2005, 05:55
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
DataSet -> Adaptador -> Update

Estamos teniendo ciertos problemillas al actualizar los datos existentes en un DataSet cargado en memoria a la base de datos... al realizar un comando de de update con el adaptador... aparece...

Error:
Falta DataColumn 'Extras' en DataTable 'ventas' para SouceColumn 'Extras'

Haciendo un debug del programa la estructura de la tabla en memoria y la de la base de datos son identicas!! todo funciona bien, hasta al hacer el update, en el que parece que mezcla columnas de otras tablas...

Alguien ha tenido algun problema parecido con el UPDATE del adaptador???
Alguna sugerencia?

Código:
public override void GuardarDataTable(string nombreTabla)
{
	try
	{
		
		OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(adaptador);
		adaptador.Update(datos,nombreTabla);
		
	}
	catch (Exception e)
	{
		System.Windows.Forms.MessageBox.Show(e.ToString());
	}
	
}
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #2 (permalink)  
Antiguo 25/04/2005, 09:13
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Tal vez si evitas el uso del CommandBuilder, y configura manualmente el Adaptador, de ésta forma tendrás mayor control.
__________________
Si puedes pensarlo, puedes hacerlo.
  #3 (permalink)  
Antiguo 26/04/2005, 01:28
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
te agradeceria si puedes concretar algo mas...
has tenido algun problema con el CommandBuilder??
Como se evita su uso en tal caso?

salu2
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #4 (permalink)  
Antiguo 26/04/2005, 08:19
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
No he tenido el problema que tu tienes, pero he evitado el CommandBuilder porque es algo ineficiente...

Creo que una mejor manera de utilizar el DataAdapter es utilizar el Wizard en tiempo de diseño que te configura los commands o crear cada command y asignarselos al dataadapter tu mismo.

Solo tienes que arrastrar un Componente DataAdapter en tiempo de diseño y un Wizard te ayuda incluso a crear las sentencias SQL o store procedures en base al comando de seleccion.

El CommandBuilder hace algo parecido, pero el problema del CommandBuilder es que crea los demás comandos hasta el tiempo de ejecución y no tienes control sobre como fueron creados.
__________________
Si puedes pensarlo, puedes hacerlo.
  #5 (permalink)  
Antiguo 27/04/2005, 09:44
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
El problema es que ese código esta encapsulado dentro de una clase y no se puede arrastrar ningun elemento... no?

Estoy mirando el codigo en otro formulario tal como has propuesto y lo unico q no me encaja es que no es capaz de distinguir el campo clave para generar las update y delete, lo que me extrana teniendo en la tablas campos clave...

Código:
private System.Data.Odbc.OdbcDataAdapter odbcDataAdapter1;
this.odbcDataAdapter1 = new System.Data.Odbc.OdbcDataAdapter();
private System.Data.Odbc.OdbcCommand odbcSelectCommand1;

this.odbcDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
																   new System.Data.Common.DataTableMapping("Table", "nombreTABLA", new System.Data.Common.DataColumnMapping[] {
																	new System.Data.Common.DataColumnMapping("NombreColumna", "NombreColumna"),
	new...
	})});
	
this.odbcSelectCommand1 = new System.Data.Odbc.OdbcCommand();
this.odbcSelectCommand1.CommandText = "SELECT campos FROM tabla";
this.odbcSelectCommand1.Connection = this.odbcConnection1;
De hacerlo manualmente el tema no se complicaría demasiado para tablas más complejas? con relaciones y restricciones...
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #6 (permalink)  
Antiguo 22/04/2009, 14:24
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: DataSet -> Adaptador -> Update

esta linea "OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(adaptador);"
NO sirve no funciona, no es necesario

Con esto es suficiente: "adaptador.Update(dataset,nombreTabla);"
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 14:26.