tag:blogger.com,1999:blog-37408564.post2491581840658462584..comments2022-03-25T07:53:37.911+00:00Comments on N-Idea. Nuevas Ideas: Uso de Transacciones en C# con TableAdaptersManuel Cardenas Thorlundhttp://www.blogger.com/profile/06587982094935316828noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-37408564.post-10077966287282787592011-05-07T04:32:19.013+00:002011-05-07T04:32:19.013+00:00Hola, que tal. Me han surgido varias ideas para ha...Hola, que tal. Me han surgido varias ideas para hacer esto mas sencillo. Y si la propiedad SqlTransaction se maneja static, de manera que se pueda pasar tranaparentemente cuando se indica el metodo BeginTransaction(), creo que se puede jugar con cierta logica para hacerla de instancia y de clase para evitar estar pasandola en cada TablaAdapter. Les dejo la inquietud y me parece bueno el post.wolfkathttps://www.blogger.com/profile/05247264322517447880noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-25473273228640161472011-05-07T04:30:19.989+00:002011-05-07T04:30:19.989+00:00Este comentario ha sido eliminado por el autor.wolfkathttps://www.blogger.com/profile/05247264322517447880noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-83401589715199356472010-04-20T14:50:47.752+00:002010-04-20T14:50:47.752+00:00Excelente publicacion, gracias es lo que estaba bu...Excelente publicacion, gracias es lo que estaba buscando..<br />me funciono correctamente.<br />Bien por compartir el conocimiento.<br />Claro y Entendible.Alfredo Chalénoreply@blogger.comtag:blogger.com,1999:blog-37408564.post-81681466623752747602009-03-10T12:20:00.000+00:002009-03-10T12:20:00.000+00:00Excelente articulo!. Muchas gracias por la info!<B>Excelente articulo!</B>. Muchas gracias por la info!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-37408564.post-91709213579689077882008-10-10T09:14:00.000+00:002008-10-10T09:14:00.000+00:00Hola Diego,he estado mirando la clase y entiendo q...Hola Diego,<BR/>he estado mirando la clase y entiendo que si value.Connection te devuelve 'System.Data.Common.DbConnection' y la clase está esperando 'System.Data.SqlServerCe.SqlCeConnection' deberás convertir la definición de la propiedad de SqlTransaction a SqlCETransaction (o algo parecido), porque la propiedad value.Connection se evalua en base a la definición de la propiedad.<BR/><BR/>Es decir, en la clase dispones de la propiedad:<BR/><BR/>public SqlTransaction transaccion<BR/>{}<BR/><BR/>supongo que tendrás que cambiar esa definición por SqlCETransaction, así como el resto de propiedades de la clase.<BR/><BR/>Es lo que se me ocurre. Espero que te sirva.Manuel Cardenas Thorlundhttps://www.blogger.com/profile/06587982094935316828noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-26508907484523153002008-10-10T08:47:00.000+00:002008-10-10T08:47:00.000+00:00Holala libreria System.Data.SqlClient, ya esta imp...Hola<BR/><BR/>la libreria System.Data.SqlClient, ya esta importada con 0 problemas, si el problema es que value.Connection retorna un valor de tipo 'System.Data.Common.DbConnection' y no se como convertirlo a 'System.Data.SqlServerCe.SqlCeConnection' que es heredada de la clase anterior, bueno voy a seguir buscando, si recuerdas algo me avisas y muchas gracias por tu ayuda<BR/><BR/>saludos.Diego Garay Nefhttps://www.blogger.com/profile/16496859020040218725noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-56117678133569902132008-10-10T08:31:00.000+00:002008-10-10T08:31:00.000+00:00Gracias por el link.Con respecto al error, la clas...Gracias por el link.<BR/><BR/>Con respecto al error, la clase está completamente hecha hacia SQLServer con el framework 2.0. Al hacer la migración hacia Compact Framework entiendo que deberás reescribir las referencias a las librerias, utilizando en vez de:<BR/><BR/>using System.Data.SqlClient<BR/><BR/>el correspondiente en el Compact Framework.<BR/><BR/>Lo siento pero nunca he trabajado con ese framework.Manuel Cardenas Thorlundhttps://www.blogger.com/profile/06587982094935316828noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-12416776973289276152008-10-10T08:22:00.000+00:002008-10-10T08:22:00.000+00:00Holamira he hecho la migracion a compact framework...Hola<BR/><BR/>mira he hecho la migracion a compact framework, pero solo me falta algo y me gustaria saber si me puedes ayudar, tengo problemas con el campo de (public SqlTransaction Transaction)<BR/><BR/>mas especificamente en <BR/><BR/>// also set connection of this adapter accordingly:<BR/>if (value != null){<BR/>Connection = value.Connection;<BR/>}<BR/><BR/>el error es <BR/><BR/>Error 3 No se puede convertir implícitamente el tipo 'System.Data.Common.DbConnection' en 'System.Data.SqlServerCe.SqlCeConnection'. Ya existe una conversión explícita (compruebe si le falta una conversión)<BR/><BR/>no como poder hacer la conversion, gracias de antemano.Diego Garay Nefhttps://www.blogger.com/profile/16496859020040218725noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-37238563960877370722008-10-10T08:13:00.000+00:002008-10-10T08:13:00.000+00:00ese el link verdadero.http://www.codeproject.com/K...ese el link verdadero.<BR/><BR/>http://www.codeproject.com/KB/dotnet/transactionta.aspx?display=Print<BR/><BR/>saludos.Diego Garay Nefhttps://www.blogger.com/profile/16496859020040218725noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-83641481166841697152008-10-09T09:19:00.000+00:002008-10-09T09:19:00.000+00:00Muchas Graciasvoy a probar eso y te cuento como me...Muchas Gracias<BR/><BR/>voy a probar eso y te cuento como me fue.<BR/><BR/><BR/>saludos.Diego Garay Nefhttps://www.blogger.com/profile/16496859020040218725noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-2075660447587423902008-10-09T09:10:00.000+00:002008-10-09T09:10:00.000+00:00Buenas Diego, ha habido un error en la dirección d...Buenas Diego, ha habido un error en la dirección del artículo de Mike Pagel. Te puedes descargar la clase TransactionSupport.cs desde aquí:<BR/><BR/>http://www.nidea-soluciones.com/PruebasAJAX/TransactionSupport.zip<BR/><BR/>1. La clase TransactionSupport.cs (es una clase), la descargas de la dirección. La colocas dentro de tu proyecto (donde quieras) y en la propiedad BaseClass del tableadapter la referencias. En mi caso referencio Transaccion.TransactionSupport porque le puso a la clase el namespace Transaccion.<BR/><BR/>2. El método BeginTransaction del tableadapter lo llamo justo al empezar el bloque try, antes de empezar a realizar los cambios en base de datos.<BR/><BR/>3. Lo único que tienes que hacer es:<BR/>a) Descargarte la clase de Mike Pagel y guardarla en tu proyecto (poniéndole el namespace que quieras).<BR/>b) Modificar la propiedad BaseClass de los tableadapters (en el diseñador) referenciando a la clase TransactionSupport. (No hay que implementar la clase parcial del tableadapter).<BR/>c) En tu objeto tableadapter aparecerán los métodos BeginTransaction(), RollbackTransaction() y CommitTransaction() y la propiedad Transaction para referenciar la transacción en si.<BR/><BR/>Una vez puesta la clase en la propiedad BaseClass de los tableadapters puedes probar con el siguiente código:<BR/><BR/>MiTableAdapter miAdp = new MiTableAdapter();<BR/><BR/>try<BR/>{<BR/>miAdp.BeginTransaction();<BR/>// Realiza alguna modificacion con miAdp<BR/>miAdp.CommitTransaction();<BR/>}<BR/>catch<BR/>{<BR/>miAdp.RollbackTransaction();<BR/>}<BR/><BR/>Juega con el código para forzar los rollbacks o los commits y haz el seguimiento en la base de datos.<BR/><BR/>Espero que te haya servido mi ayuda. Cualquier otra cosa, aquí estamos.Manuel Cardenas Thorlundhttps://www.blogger.com/profile/06587982094935316828noreply@blogger.comtag:blogger.com,1999:blog-37408564.post-78669188881979746142008-10-09T08:20:00.000+00:002008-10-09T08:20:00.000+00:00HolaMuy interesante tu articulo, estoy desarrollan...Hola<BR/><BR/>Muy interesante tu articulo, estoy desarrollando en VS 2005 con C# pero para pocket pc, que es bastante similiar, pero quiero tengo dudas de tu ejemplo<BR/><BR/>1 no entiendo como creas y de que parte llamas a Transaccion.TransactionSupport (¿es una clase?), ya que lo que logre entender de Mike Pagel, tienes que implementar la clase parcial del tableAdapter con lo que aparece al final solamente.<BR/><BR/>2 de donde llamas a al metodo del tableAdapter BeginTransaction, ya que no se ve en ninguna parte del ejemplo implementado<BR/><BR/>3 Tendrias algun codigo de ejemplo, para tener todo mas claro por favor me ayudaria mucho ya que estoy contra el tiempo.<BR/><BR/>gracias y saludos.Diego Garay Nefhttps://www.blogger.com/profile/16496859020040218725noreply@blogger.com