Busco consejo...

08/02/2007 - 19:54 por Carmelo J. Morales Muñoz | Informe spam
¡Hola!

Tengo toda una factura en un DataSet, organizada en dos dataTable dentro del
dataSet.

El primer dataTable es la cabecera de la factura, el segundo dataTable
contiene todas las líneas de factura.

Ahora necesito enviar toda esa información hacia una base datos SqlExpress
2005. ¿me pueden recomendar como hacerlo?.

Yo había pensado enviar la cabecera, luego con el identificador único
enlazado a esa cabecera, enviar las filas, si hay algún error borrar
cabecera.

¿como me recomiendan hacerlo?.

bye!

Preguntas similare

Leer las respuestas

#6 Carmelo J. Morales Muñoz
09/02/2007 - 18:57 | Informe spam
hola nuevamente

Gracias por responder, cuando me refería a que es fácil con TableAdapters
quería decir que hacerlo utilizando transacciónes es muy fácil.

En vs2003 por un ejemplo que encontré buscando en google había que definir
objetos SqlTransaction. Enlazarlos con la conexión, etc.

Con los tableAdapters es mucho mas facil, está el código mas escondido al
usuario (almenos yo lo veo mas fácil).

Te pongo un poco de mi código:

DataSetFacturasTableAdapters.FACTURACLIENTESTableAdapter factura
new CapaDatos.DataSetFacturasTableAdapters.FACTURACLIENTESTableAdapter();

factura.Connection.BeginTransaction();

con esta línea ya he iniciado la transacción.

ahora factura.EnviaCabecera(datos_de_la_cabecera...etc),



factura.EnviaLineasDetalle(_pues_las_lineas)



Ahora bien, no tiene ningún método mediante el cual le indique el commit
transaction ó rollback transaction.



Con lo cual creo que también enmascara este comportamiento, y pienso que no
será necesario. Si algo falla hara rollback y si todo ok cuando se destruya
el objeto hará un commit.



Pero no estoy seguro, aún tengo que terminar de codificar . Si pueden
ayudarme en esto por si estoy equivocado se lo agradecería!
Respuesta Responder a este mensaje
#7 Carmelo J. Morales Muñoz
10/02/2007 - 13:55 | Informe spam
Finalmente no ha sido tan fácil, no encuentro información sobre como manejar
transacciones cunando se trabaja con TableAdapters, que es lo que recomienda
microsoft según leí en su web.

Si tengo un DataSet creado con vs2005, en él creo el TableAdapter para
manejar una tabla de clientes.

Bien, para instanciar y poder usarlo hago tal que así:

DataSetTableAdapters.TableAdapter miTableAdapter = new
DataSetTableAdapters.TableAdapter;

desde este momento son operativos comando como :

mitableAdapter.Insert(campo1,campo2,etc,etc)

miTableAdapter.Update(campo1,c...etc.

Lo que no se es como usar transacciones con esta técnica de tableAdapters.

Veo que miTableAdapter tiene una propiedad llamada beginTransaction pero
siempre que la llamo me da error.

y no encuentro ejemplos de como utilizarlo.

?¿puede alguien ayudarme?.
Respuesta Responder a este mensaje
#8 Carmelo J. Morales Muñoz
10/02/2007 - 16:00 | Informe spam
lo mas parecido que he encontrado ha sido esto. pero no lo veo claro!
¿alguien conoce algún ejemplo mas claro?
http://www.pcreview.co.uk/forums/th...180133.php
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida