Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2009, 13:52
Avatar de argy
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.