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

Transacción que no actualiza datos

Estas en el tema de Transacción que no actualiza datos en el foro de .NET en Foros del Web. Hola a todos, necesito su ayuda. Tengo el siguiente código Cita: Pagina.aspx.cs using System; using System.Collections; using System.Configuration; using System.Data; using System.Data.Odbc; using System.Web; using ...
  #1 (permalink)  
Antiguo 08/01/2009, 13:52
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Transacción que no actualiza datos

Hola a todos, necesito su ayuda. Tengo el siguiente código
Cita:
Pagina.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.Odbc;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace clases
{
public partial class _66_244 : System.Web.UI.Page
{
OdbcConnection conn = new OdbcConnection(@"driver={mysql ODBC 5.1 driver};server=localhost;database=clases;uid=root; ");
protected void Page_Load(object sender, EventArgs e)
{
establecerBindings();
}
protected void establecerBindings()
{
DataSet ds = new DataSet();
OdbcDataAdapter query= new OdbcDataAdapter("SELECT * FROM tbl_regions",conn);
query.Fill(ds,"Regiones");
tabla.DataSource=ds.Tables["Regiones"].DefaultView;
tabla.DataBind();
}
protected void edita(object sender, DataGridCommandEventArgs e)
{
tabla.SelectedIndex = -1;
tabla.EditItemIndex = e.Item.ItemIndex;
establecerBindings();
}
protected void cancela(object sender, DataGridCommandEventArgs e)
{
tabla.EditItemIndex=-1;
tabla.SelectedIndex=-1;
establecerBindings();
}
protected void actualiza(object sender, DataGridCommandEventArgs e)
{
String txtregion = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
int id = (int)tabla.DataKeys[(int)e.Item.ItemIndex];
conn.Open();
OdbcTransaction transaccion = conn.BeginTransaction();
OdbcCommand comando = new OdbcCommand();
comando.Connection = conn;
comando.Transaction = transaccion;
try
{
comando.CommandText = "UPDATE tbl_regions SET regi_name='" + txtregion + "' WHERE regi_id=" + id;
comando.ExecuteNonQuery();
transaccion.Commit();
//para comprobar si se lleva la actualización
Response.Write("Se ha actualizado" +id+" "+txtregion);
tabla.SelectedIndex = -1;
tabla.EditItemIndex = -1;
establecerBindings();
}
catch (Exception ex)
{
transaccion.Rollback();
//Response.Write(ex.ToString());
Response.Write("No se ha podido Actualizar");
}
finally
{
conn.Close();
}
}
}
}
página.aspx
Cita:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="pagina.aspx.cs" Inherits="clases._pagina" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataGrid ID="tabla" runat="server" DataKeyField="regi_id" AutoGenerateColumns="false" OnCancelCommand="cancela" OnEditCommand="edita" OnUpdateCommand="actualiza">
<Columns>
<asp:EditCommandColumn EditText="Editar" CancelText="Cancelar"
UpdateText="Actualizar" HeaderText="Edición"></asp:EditCommandColumn>
<asp:BoundColumn DataField="regi_name" HeaderText="Región"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
El detalle es que no me actualiza el campo, la transacción se lleva acabo correctamente, pero al comprobar los cambios que le doy sigue con el dato anterior. Espero la ayuda de ustedes
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #2 (permalink)  
Antiguo 08/01/2009, 17:25
Avatar de atlante  
Fecha de Ingreso: julio-2002
Ubicación: Lima
Mensajes: 140
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Transacción que no actualiza datos

Cambia esta expresión en el Load:

establecerBindings();

Por esta

if(!Page.IsPostBack)
{
establecerBindings();
}

Saludos
__________________
If you look, If you really read between the lines, You will see...
  #3 (permalink)  
Antiguo 08/01/2009, 17:38
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Transacción que no actualiza datos

gracias lo probaré
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #4 (permalink)  
Antiguo 09/01/2009, 15:09
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Transacción que no actualiza datos

gracias atlante, fue eso ahora funciona muy bien.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 03:33.