Problemas con updateCommand DataGrid

02/01/2004 - 10:51 por D. Web | Informe spam
Hola:

Estoy intentando hacer un dataGrid con los botones editar, (actualizar y
cancelar) y no consigo hacer que funcione actualizar, ya que no me guarda el
nuevo valor introducido en el textbox, sino que mantiene el anterior.

Este es el código que está incluido en UpdateCommand


____________________________________________________________

/////////////////////////////////////////////////
//Recogida de variables//
////////////////////////////////////////////////
string idUsuario = (string)this.DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string Nombre = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string Apellidos = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string Usuario = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string Pass = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string Pregunta = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string Respuesta = ((TextBox)e.Item.Cells[2].Controls[0]).Text;

/////////////////////////////////////////////////
//Sql de Actualización//
////////////////////////////////////////////////
string sqlUpdate = "UPDATE users SET Nombre ='"+Nombre+"', Apellidos
='"+Apellidos+"', Usuario ='"+Usuario+"', Pass ='"+Pass+"', Pregunta
='"+Pregunta+"', Respuesta ='"+Respuesta+"' WHERE Usuario='"+idUsuario+"'";

String item = ((TextBox)e.Item.Cells[2].Controls[0]).Text.ToString();

this.Response.Write("idUsuario:"+idUsuario+"Nombre: " +Nombre+"Apellidos: "+
Apellidos+"Usuario: "+Usuario+"Pass: "+Pass+"Pregunta:
"+Pregunta+"Respuesta: "+Respuesta+"SQL= "+sqlUpdate);

/////////////////////////////////////////////////
//Conexión a la base de datos//
////////////////////////////////////////////////
string strConexion @"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";.
OleDbConnection conn = new OleDbConnection(strConexion);
conn.Open();
OleDbCommand Actualizar = new OleDbCommand(sqlUpdate, conn);
Actualizar.CommandType = CommandType.Text;
Actualizar.ExecuteNonQuery();
conn.Close();


DataGrid1.EditItemIndex = -1;

DataGrid1.DataBind();
 

Leer las respuestas

#1 christian strevel
05/01/2004 - 05:15 | Informe spam
checate que no estes haciendo una recarga de dentro de un postback

esto sucede muy seguido, que cuando le das el update, se vuelve a llamar el
pageload y vuelve a cargar los valores iniciales de la pagina, ahi tendrías
que hacer un IsPostBack para que no se reinicien.

Tu codigo se ve bien, me late que la bronca es por otra parte...

Christian Strevel
MCAD.NET

"D. Web" <web(Arroba)tecninorte.com> wrote in message
news:OW$
Hola:

Estoy intentando hacer un dataGrid con los botones editar, (actualizar y
cancelar) y no consigo hacer que funcione actualizar, ya que no me guarda


el
nuevo valor introducido en el textbox, sino que mantiene el anterior.

Este es el código que está incluido en UpdateCommand


____________________________________________________________

/////////////////////////////////////////////////
//Recogida de variables//
////////////////////////////////////////////////
string idUsuario = (string)this.DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string Nombre = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string Apellidos = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string Usuario = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string Pass = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string Pregunta = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string Respuesta = ((TextBox)e.Item.Cells[2].Controls[0]).Text;

/////////////////////////////////////////////////
//Sql de Actualización//
////////////////////////////////////////////////
string sqlUpdate = "UPDATE users SET Nombre ='"+Nombre+"', Apellidos
='"+Apellidos+"', Usuario ='"+Usuario+"', Pass ='"+Pass+"', Pregunta
='"+Pregunta+"', Respuesta ='"+Respuesta+"' WHERE


Usuario='"+idUsuario+"'";

String item = ((TextBox)e.Item.Cells[2].Controls[0]).Text.ToString();

this.Response.Write("idUsuario:"+idUsuario+"Nombre: " +Nombre+"Apellidos:


"+
Apellidos+"Usuario: "+Usuario+"Pass: "+Pass+"Pregunta:
"+Pregunta+"Respuesta: "+Respuesta+"SQL= "+sqlUpdate);

/////////////////////////////////////////////////
//Conexión a la base de datos//
////////////////////////////////////////////////
string strConexion > @"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";.
OleDbConnection conn = new OleDbConnection(strConexion);
conn.Open();
OleDbCommand Actualizar = new OleDbCommand(sqlUpdate, conn);
Actualizar.CommandType = CommandType.Text;
Actualizar.ExecuteNonQuery();
conn.Close();


DataGrid1.EditItemIndex = -1;

DataGrid1.DataBind();





Preguntas similares