Cita:
página.aspxPagina.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();
}
}
}
}
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();
}
}
}
}
Cita:
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 <%@ 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>
<!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>