Guía 7

Anuncio
Guía 7
Elaboración de script para mantenimiento de tablas
Paso 1.
Crear una base de datos en SQL o ACCESS, y crear una tabla que tenga de nombre álbum, y sus
campos sean: Id: para identificar cada registro, Titulo: para colocarle un titulo a cada foto o
imagen, Foto: donde se guardara el nombre y extensión de imagen o foto, Descip: donde
pondrás la descripción de la foto.
Posteriormente deberás crear el string de conexión para poderlo usar en la conexión de datos.
Paso 2.
En la carpeta App_Code cree un archivo de clases que tenga el nombre por default que seria
Class1 y copie el código siguiente:
El doble asterico ** significa comentario, no copiar
** seleccione proveer de datos
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Public Class Class1
** Creo dos variables publicas una donde creare un objeto de conexion (cnn) y otra que me
servirá para enviar el resultado de consultas (reg) por esa razón es DataReader
Public cnn As New OleDbConnection
Public reg As OleDbDataReader
** Creo un metodo donde agrego el atributo donde guardo la conexión, y creo la creo, además de
usar un try para que me envie un mensaje amigable por cualquier error de conexión.
Public Sub ini()
cnn.ConnectionString = (" Colocar aqui su string de conexión ")
Try
cnn.Open()
Catch ex As Exception
MsgBox("Error de conexión")
End Try
End Sub
** Creo un metodo para usarlo cuando quiera cerrar la conexión.
Public Sub fin()
cnn.Close()
End Sub
** Creo un metodo que me sirve para ejecutar las consultas del programa, para ser mas
específicos las de INSERT INTO, DELETE y UPDATE, las cuales no devuelven datos.
Public Sub envia(ByVal texto As String)
Dim con As New OleDbCommand(texto, cnn)
con.ExecuteNonQuery()
End Sub
** Creo un metodo que me sirve para ejecutar las consultas del programa, para ser mas
específicos las de SELECT, porque estas devuelven datos, aquí regreso la variable reg con el
resultado de la consulta.
Public Function recibe(ByVal texto As String) As OleDbDataReader
Dim con As New OleDbCommand(texto, cnn)
con.ExecuteNonQuery()
reg = con.ExecuteReader
Return reg
End Function
End Class
Paso 3.
Creo una MasterPage para manejar el mantenimiento y creare un meno que tenga las
siguientes opciones: Bienvenidos, Agregar Datos, Mostrar Datos y Mostrar Grid.
La creación de estas ya la evaluamos por lo tanto no explicare aquí como hacerlas.
Paso 4
Creación de páginas: Crear el script de agregación de datos (sumar.aspx), ejemplo:
Y programaremos el botón, en el CodeBehind, de la siguiente manera.
** Creo un metodo que me sirve para registrar los datos en la base de datos.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button1.Click
** Creamos la variable abc y la instanciamos para tengo las clases de Class1 y poder usar el
objeto.
Dim abc As New Class1
Dim texto As String = "INSERT INTO album (Titulo,Foto,Descrip) VALUES ('" &
TitulFoto.Text & "','" & ArchivoFoto.FileName & "','" & DescripFoto.Text & "')"
** ahora hacemos uso de los métodos que creamos en Class1
abc.ini()
abc.envia(texto)
abc.fin()
subir_la_foto()
Response.Redirect("Default.aspx")
End Sub
** ya que estamos aquí crearemos una método para subir la imagen o fotografía, a una carpeta que
llamaremos “capturas”
Sub subir_la_foto()
Dim sName As String = ArchivoFoto.FileName()
If ArchivoFoto.HasFile Then
ArchivoFoto.SaveAs(MapPath("~/capturas/" & sName))
End If
End Sub
Una vez que hemos probado que funciona correctamente crearemos el script para ver
nuestras capturas, haremos dos uno normal y otro con Grid.
Creación de páginas: Crear el script de mostrar de datos (ver.aspx), ejemplo:
Para este script no usaremos nada en el diseño, solo trabajaremos en el Page_Load, donde
programaremos lo siguiente:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
** Defino la consulta y la guardo en una variable.
Dim texto As String = "SELECT * FROM album"
Dim abc As New Class1
abc.ini()
abc.recibe(texto)
Response.Write("<table border =0>")
** Para mostrar todos los archivos me auxilio de un while para recorer el arreglo.
While abc.reg.Read
Response.Write("<tr><td><img class=style1 height=100 width=100 src=capturas/" &
abc.reg("Foto") & "/><td>")
Response.Write("<td>" & abc.reg("Titulo") & "<td>")
Response.Write("<td>" & abc.reg("Descrip") & "<td>")
** Creo un link para borrar registros. OJO voy a pasar por Get dos variables, el id para poder
borrar el registro y el nombre del archivo de imagen para eliminarlo de la carpeta
Response.Write("<td><a href=eliminar.aspx?eli=" & abc.reg("id") & "&eli2=" & abc.reg("foto")
& ">eliminar</a><td>")
End While
Creación de páginas: Crear el script de eliminar datos (eliminar.aspx), ejemplo:
Para este script no usaremos nada en el diseño, solo trabajaremos en el Page_Load, donde
programaremos lo siguiente:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
** Recupera la variables para eliminar el registro y la imagen.
Dim VarEli As String = Request.QueryString("eli")
Dim PicEli As String = Request.QueryString("eli2")
** Elimino el registro.
Dim abc As New Class1
Dim texto As String = "DELETE FROM album WHERE id =" & VarEli
abc.ini()
abc.envia(texto)
** Elimino la imagen del directorio.
Dim borra As String = MapPath("~/capturas/" & PicEli)
Kill(borra)
Response.Redirect("default.aspx")
End Sub
Creación de páginas: Crear el script de Mostrar en Grid (vergrid.aspx), ejemplo:
En el diseño agregamos un GridView vacio, y lo programamos de la siguiente manera:
En primer lugar desactivamos la casilla de abajo que dice “Generar campos automáticamente”
de esta forma configuraremos cada campo a nuestra forma:
El primer campo será un ImagenField y lo configuraremos según la imagen de arriba, para que
nos muestre la imagen por línea.
Después agregaremos un campo para el Titulo y otro para la Descripción.
Y por ultimo para llenar el GridView utilizaremos la siguiente progrmación en el Page_Load:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
** Obtengo la informacion
Dim strcon As String = "SELECT * FROM album"
Dim abc As New Class1
abc.ini()
abc.recibe(strcon)
** En la primera línea lleno el GridView y en la segunda lo muestro.
GridView1.DataSource = abc.reg
GridView1.DataBind()
End Sub
Para completar puede auxiliarse del ejemplo, pero lo ideal es hacer por uno mismo para
entenderlo mejor.
Descargar