UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA JSCRIPT 13: EDICION DE REGISTROS SQL UPDATE

Editar registros significa cambiar el contenido de algunos de los campos o columnas por nueva informacion o para corregir algun error de captura original o para agregar alguna columna que no existia por modificacion de la tabla o la base de datos.

En general se tiene otro problema de sql UPDATE, sin embargo ahora se aprovechan algunos elementos nuevos del objeto datagrid, como son la capacidad que tiene de crearle columnas de edicion a los renglones que muestra el dataset, estas columnas de edicion traen sus propios metodos, mismos que se pueden cargar con codigo para procesar.

Prog32.aspx

<%@ PAGE LANGUAGE=JSCRIPT %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script runat=server>
var canal:OleDbDataAdapter;
var tabla:DataSet;
var coneccion:OleDbConnection;
var orden:OleDbCommand;
function Page_Load(sender: Object, e: EventArgs):void
{
coneccion =new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\progfacil\\lauro\\mibase.mdb");
// solo para cuando se carga por primera vez la forma
if (!IsPostBack)
DespTabla();
}
public function DespTabla():void
{
canal=new OleDbDataAdapter("select * from mitabla", coneccion);
tabla= new DataSet();
canal.Fill(tabla, "mitabla");
TABLAGRID.DataSource=tabla;
TABLAGRID.DataMember="mitabla";
TABLAGRID.DataBind();
}
public function DataGrid_Edit(sender:Object, e: DataGridCommandEventArgs):void
{
// cargando el renglon donde se pidio la edicion
TABLAGRID.EditItemIndex =e.Item.ItemIndex;
DespTabla();
}
public function DataGrid_Cancel(sender: Object, e: DataGridCommandEventArgs):void
{
// para cancelar solo poner edititemindex en -1 (ningun renglon)
TABLAGRID.EditItemIndex = -1;
DespTabla();
}
public function DataGrid_Update(sender: Object, e: DataGridCommandEventArgs):void
{
var q = "UPDATE mitabla SET clave= @CLAVE, nombre= @NOMBRE, edad = @EDAD where clave= @CLAVE";
orden = new OleDbCommand(q, coneccion);
orden.Parameters.Add(new OleDbParameter("@CLAVE", OleDbType.Integer));
orden.Parameters.Add(new OleDbParameter("@NOMBRE", OleDbType.VarWChar, 20));
orden.Parameters.Add(new OleDbParameter("@EDAD", OleDbType.Integer));
//cargando textbox de clave con el valor de la clave
orden.Parameters["@CLAVE"].Value = TABLAGRID.DataKeys[e.Item.ItemIndex];
// creando y cargando los demas textboxs
var nomcajas: String[]=new String[3];
nomcajas[0] ="@CLAVE";
nomcajas[1] ="@NOMBRE";
nomcajas[2] ="@EDAD";
for (var i = 2; i <= 3; i++)
{
var datocajas:String;
var micaja:TextBox = new TextBox();
micaja = e.Item.Cells[i].Controls[0];
datocajas = micaja.Text;
orden.Parameters[nomcajas[i-1.Value = Server.HtmlEncode(datocajas);
}
orden.Connection.Open();
orden.ExecuteNonQuery();
// poniendo otra vez el datagrid en nada
TABLAGRID.EditItemIndex = -1;
orden.Connection.Close();
DespTabla();
}
</script>
<body style="font: 10pt verdana">
<form runat="server">
<h3><font face="Verdana">EDICION O ACTUALIZACION DE REGISTROS</font></h3>
<span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p>
<ASP:DataGrid id="TABLAGRID" runat="server"
Width="400"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="DataGrid_Edit"
OnCancelCommand="DataGrid_Cancel"
OnUpdateCommand="DataGrid_Update"
DataKeyField="clave"
<Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>

Para entender el codigo veamos la corrida completa:

Pantalla uno prog32.aspx

image276.jpg

Observar que ahora el datagrid incluye una columna de edicion especial, revisar la parte del codigo de propiedades del datagrid en el programa y las nuevas propiedades que se le agregaron.

Pantalla dos prog32.aspx

image277.jpg

Observar que la columna de edicion del renglon seleccionado (click en edit de cualquier renglon) ahora tiene dos opciones(update y cancel) y el renglon de edicion se convirtio en puros textbox (ya se modificaron algunos valores), update y cancel tienen su propio codigo en el programa, revisarlo y usando opcion update se tiene ahora;

Pantalla tres prog32.aspx

image278.jpg

Un registro editado o modificado, analizar con cuidado el codigo del programa, que esta documentado, suerte

1.- construir aspx's de edicion para sus tablas y bases de datos

Politica de Privacidad