ProgramacionFacil

UNIDAD 5: C# NET INTRODUCION A LAS BASES DE DATOS

TEMA 13: C# NET EDICION DE REGISTROS SQL UPDATE

Editar registros significa cambiar el contenido de algunos de los campos o columnas por nueva informacíón o para corregir algun error de captura original o para agregar alguna columna que no existia por modificación 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 crear columnas de edicion a los renglones que muestra el dataset, estas columnas de edición traen sus propios metodos, mismos que se pueden cargar con codigo para procesar.

Prog32.aspx


<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="C#" runat="server">
OleDbConnection coneccion = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\sites\\www28\\laurosoto\\db\\mibase.mdb");

void Page_Load(Object sender, EventArgs e)
{ // solo para cuando se carga por primera vez la forma
if (!IsPostBack)
DespTabla();
}

public void DespTabla()
{
OleDbDataAdapter canal=new OleDbDataAdapter("select * from tabla1", coneccion);
DataSet tabla= new DataSet();
canal.Fill(tabla, "tabla1");
TABLAGRID.DataSource=tabla;
TABLAGRID.DataMember="tabla1";
TABLAGRID.DataBind();
}

public void DataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
// cargando el renglon donde se pidio la edicion
// con la nueva columna y cajas de texto para las columans normales
TABLAGRID.EditItemIndex = (int) e.Item.ItemIndex;
DespTabla();
}

public void DataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
// para regresar al estado original o normal
// solo poner edititemindex en -1 (ningun renglon)
TABLAGRID.EditItemIndex = -1;
DespTabla();
}

public void DataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
String q = "UPDATE tabla1 SET clave= @CLAVE, nombre= @NOMBRE, edad = @EDAD where clave= @CLAVE";
OleDbCommand 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[(int)e.Item.ItemIndex];
// creando y cargando los demas textboxs que le aparecieron al usuario
String[] nomcajas = {"@CLAVE","@NOMBRE","@EDAD"};
for (int i=2; i <= 3; i++)
{
String datocajas =((TextBox)e.Item.Cells[i].Controls[0]).Text;
orden.Parameters[nomcajas[i-1]].Value = Server.HtmlEncode(datocajas);
}
orden.Connection.Open();
orden.ExecuteNonQuery();
// poniendo otra vez el datagrid en nada o estado original
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" 

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"

runat="server">

<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 modificarón 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.- TAREAS PROGRAMACION C# NET construir aspx's de edición para sus tablas y bases de datos���

 




 


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Politica de Privacidad