UNIDAD 5: VISUAL BASIC NET BASES DE DATOS

TEMA 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.

Prog31.aspx

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<HTML>
<script language=VB runat=server>
DIM coneccion As OleDbConnection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\progfacil\tusitio\mibase.mdb")
SUB Page_Load(Sender as Object, E as EventArgs)
' solo para cuando se carga por primera vez la forma
if NOT IsPostBack Then
DespTabla()
end if
END SUB
SUB DespTabla()
DIM canal as OleDbDataAdapter
canal = new OleDbDataAdapter("select * from mitabla", coneccion)
DIM tabla as DataSet
tabla = new DataSet()
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla
TABLAGRID.DataMember="mitabla"
TABLAGRID.DataBind()
END SUB
SUB DataGrid_Edit(Sender as Object, E as DataGridCommandEventArgs)
' cargando el renglon donde se pidio la edicion
TABLAGRID.EditItemIndex = E.Item.ItemIndex
DespTabla()
END SUB
SUB DataGrid_Cancel(Sender as Object, E as DataGridCommandEventArgs)
'para cancelar solo poner edititemindex en -1 (ningun renglon)
TABLAGRID.EditItemIndex = -1
DespTabla()
END SUB
SUB DataGrid_Update(Sender as Object, E as DataGridCommandEventArgs)
DIM q AS STRING
q = "UPDATE mitabla SET clave= @CLAVE, nombre= @NOMBRE, edad = @EDAD where clave= @CLAVE"
DIM orden AS 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(E.Item.ItemIndex)
' creando y cargando los demas textboxs
DIM nomcajas()= {"@CLAVE","@NOMBRE","@EDAD"}
DIM i AS Integer
FOR i=1 to 3
DIM datocajas AS STRING
Dim micaja As TextBox
micaja = CType(E.Item.Cells(I).Controls(0), TextBox)
datocajas = micaja.Text
orden.Parameters(nomcajas(i-1)).Value = Server.HtmlEncode(datocajas)
NEXT i
orden.Connection.Open()
orden.ExecuteNonQuery()
'poniendo otra vez el datagrid en nada
TABLAGRID.EditItemIndex = -1
orden.Connection.Close()
DespTabla()
END SUB
</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 prog31.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 prog31.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 prog31.aspx

image278.jpg

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

1.- con visual basic net construir aspx de edicion para sus tablas y bases de datos

Politica de Privacidad