Download - Programando con ADO.NET
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 1
Programando con ADO.NET ADO.NET utiliza algunos objetos ADO, como Connection y Command, y también agrega objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter.
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 2
Objeto SqlConnection:
Para conectar con una base de datos y administrar las transacciones en una base de datos.
Imports System.Data Imports System.Data.SqlClient Partial Class _Default
Inherits System.Web.UI.Page 'CREANDO LA CADENA DE CONEXION Dim cn As New SqlConnection("Server=(local);integrated security=SSPI;DataBase=Neptuno") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then Try
'ABRIENDO LA CONEXION cn.Open() Response.Write("Conexion Correcta")
Catch ex As Exception Response.Write("Error en la Conexion")
Finally 'CERRANDO LA CONEXION cn.Close()
End Try End If
End Sub End Class
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 3
Objeto SqlDataAdapter:
Para insertar datos en un objeto DataSet y reconciliar datos de la base de datos.
Imports System.Data Imports System.Data.SqlClient Partial Class _Default
Inherits System.Web.UI.Page 'CREANDO LA CADENA DE CONEXION Dim cn As New SqlConnection("Server=(local);integrated security=SSPI;DataBase=Neptuno") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim da As New SqlDataAdapter("select idcategoria,nombrecategoria ,descripcion from categorias", cn) 'CREANDO UNA TABLA VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim tbl As New DataTable 'LLENANDO LOS DATSO PROCESADOS EN EL DataTable MEDIANTE EL METODO FILL da.Fill(tbl) 'ASIGNANDO LA TABLA EN MEMORIA AL GridView1 GridView1.DataSource = tbl GridView1.DataBind() End If
End Sub End Class
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 4
Objeto SqlDataReader:
Proporcionan una forma de leer una secuencia de registros de datos sólo hacia delante desde un origen de datos SQL Server.
Imports System.Data Imports System.Data.SqlClient Partial Class _Default
Inherits System.Web.UI.Page 'CREANDO LA CADENA DE CONEXION Dim cn As New SqlConnection("Server=(local);integrated security=SSPI;DataBase=Neptuno") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then 'ABRIENDO LA CONEXION cn.Open() 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlCommand Dim cmd As New SqlCommand("select nombrecategoria from categorias", cn) 'EJECUTAR EL ExecuteReader (FILAS) Dim dr As SqlDataReader = cmd.ExecuteReader 'EMPEZAMOS A LEER CADA FILA RECORRIDA While (dr.Read)
DropDownList1.Items.Add(dr(0)) End While 'CERRANDO LA CONEXION cn.Close()
End If End Sub
End Class
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 5
Objetos DataSet:
Para almacenar datos sin formato, datos XML y datos relacionales, así como para configurar el acceso remoto y programar sobre datos de este tipo.
Imports System.Data Imports System.Data.SqlClient Partial Class _Default
Inherits System.Web.UI.Page 'CREANDO LA CADENA DE CONEXION Dim cn As New SqlConnection("Server=(local);integrated security=SSPI;DataBase=Neptuno") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim da As New SqlDataAdapter("select nombrecategoria ,idcategoria from categorias", cn) 'CREANDO UNA TABLA VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim tbl As New DataTable 'LLENANDO LOS DATSO PROCESADOS EN EL DataTable MEDIANTE EL METODO FILL da.Fill(tbl) 'ASIGNANDO LA TABLA EN MEMORIA AL DropDownList1 DropDownList1.DataSource = tbl 'DataTextField =>MUESTRA LOS DATOS DE CAMPO ASIGNADO DropDownList1.DataTextField = "nombrecategoria" 'DataValueField =>MUESTRA LOS DATOS DE CAMPO A EVALUAR DropDownList1.DataValueField = "idcategoria" DropDownList1.DataBind()
End If End Sub
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim cadsql = "select idproducto ,nombreproducto,preciounidad from productos where idcategoria =" & DropDownList1.SelectedValue 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim da As New SqlDataAdapter(cadsql, cn) 'CREANDO un DataSet VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim ds As New DataSet 'LLENANDO LOS DATSO PROCESADOS EN EL DataSet MEDIANTE EL METODO FILL da.Fill(ds, "productos") 'ASIGNANDO LA TABLA EN MEMORIA AL GridView1 GridView1.DataSource = ds.Tables(0) GridView1.DataBind()
End Sub End Class
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 6
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 7
Mantenimiento de la Tabla Estudiante
Aplicación 1: Default.aspx
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 8
Creacion de la Base Datos Instituto:
CREATE DATABASE INSTITUTO GO USE INSTITUTO GO CREATE table Estudiantes( cod_est char(6) Primary Key not null, nom_est varchar(50), fecha datetime, esp_est varchar(30), foto char(11) )
Codigo Fuente:
Imports System.Data Imports System.Data.SqlClient Imports System.IO Partial Class _Default
Inherits System.Web.UI.Page 'CREANDO LA CADENA DE CONEXION Dim cn As New SqlConnection("server=(local);integrated security=sspi;database=Instituto") Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then
'CAPTURANDO LA FECHA DEL SISTEMA lblfecha.Text = Now Image2.ImageUrl = ".\Fotos\imagen.jpg" GenerarCodigo() NuevoEstudiante() ListadoEstudiante() LlenadoEspecialidades()
End If End Sub 'EN ESTE PROCEDIMIENTO ESTAMOS GENERANDO EL CODIGO Sub GenerarCodigo()
Try Dim cadsql As String = "select 'E'+right('00000'+ltrim(right(isnull(max(cod_est),'00000'),5)+1),5) from Estudiantes"
'ABRIENDO LA CONEXION cn.Open() 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlCommand Dim cmd As New SqlCommand(cadsql, cn) 'RECUPERANDO EL VALOR GENERADO Dim cod As String = cmd.ExecuteScalar lblcodigo.Text = cod.ToString()
Catch ex As Exception Finally
cn.Close() 'CERRANDO LA CONEXION
End Try End Sub
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 9
'LLENANDO LAS ESPECIALIDADES en un Arreglo Dim Especialidad() As String = "Diseño Web", "Java", "Ajax", "Visual Basic", "AS/400", "Networking" Sub LlenadoEspecialidades()
'ASIGNANDO LOS DATOS AL Drpespecialiadad Drpespecialiadad.DataSource = Especialidad Drpespecialiadad.DataBind()
End Sub 'EN ESTE PROCEDIMIENTO ESTAMOS LIMPIANDO
Sub NuevoEstudiante() GenerarCodigo() txtnombre.Text = "" Image2.ImageUrl = ".\Fotos\imagen.jpg" Drpespecialiadad.SelectedIndex = 0 txtnombre.Focus()
End Sub
'EN ESTE PROCEDIMIENTO ESTAMOS LISTANDO LOS ESTUADIANTES Sub ListadoEstudiante()
'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim da As New SqlDataAdapter("select * from Estudiantes", cn) 'CREANDO UNA TABLA VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim tbl As New DataTable 'LLENANDO LOS DATOS PROCESADOS EN EL DataTable MEDIANTE EL METODO(FILL) da.Fill(tbl) 'ASIGNANDO LA TABLA EN MEMORIA AL GridView1 GridView1.DataSource = tbl GridView1.DataBind()
End Sub
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim cadsql As String = "select * from Estudiantes where cod_est='" & GridView1.SelectedRow.Cells(1).Text & "'" Dim da As New SqlDataAdapter(cadsql, cn) 'CREANDO UNA TABLA VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim tbl As New DataTable 'LLENANDO LOS DATOS PROCESADOS EN EL DataTable MEDIANTE EL METODO(FILL) da.Fill(tbl) lblcodigo.Text = tbl.Rows(0)(0) txtnombre.Text = tbl.Rows(0)(1) Drpespecialiadad.Text = tbl.Rows(0)(3) Image2.ImageUrl = ".\fotos\" & tbl.Rows(0)(4)
End Sub
'BOTON LIMPIAR Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
NuevoEstudiante() End Sub
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 10
Protected Sub BTNGRABAR_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BTNGRABAR.Click
Try 'RECUPERANDO LA LOGINTUD DEL FileUpload1 Dim longitud As Integer = FileUpload1.FileName.Length If longitud = 0 Then Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Seleccione La Foto</strong></span>")
Exit Sub End If 'CAPTURANDO LA RUTA DE LA IMAGEN Dim ruta As String = FileUpload1.FileName 'GUARDANDO LA IMAGEN EN LA CARPETA FOTOS FileUpload1.SaveAs(Server.MapPath(".\\Fotos\\") + ruta) Dim cmd As New SqlCommand("Insert into Estudiantes Values(@codigo,@nombre,@fecha,@especi,@foto)", cn) cmd.Parameters.Add("@codigo", SqlDbType.Char, 6).Value = lblcodigo.Text cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 50).Value = txtnombre.Text cmd.Parameters.Add("@fecha", SqlDbType.DateTime).Value = lblfecha.Text cmd.Parameters.Add("@especi", SqlDbType.VarChar, 30).Value = Drpespecialiadad.Text cmd.Parameters.Add("@foto", SqlDbType.Char, 11).Value = ruta
'ABRIENDO LA CONEXION cn.Open() 'NOS DEVUELVE SI NUMERO DE FILAS AFECTADAS Dim i As Integer = cmd.ExecuteNonQuery() 'PREGUNTAMOS SI AFECTO UNA FILA If (i > 0) Then
Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Grabo Sastifactoriamente</strong></span>") 'LIMPIANDO A SER GRABADO 'LISTANDO LOS ESTUDIANTES AL SER GRABADO ListadoEstudiante() NuevoEstudiante()
Else Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Error al Grabar</strong></span>")
End If Catch ex As Exception Finally
'CERRANDO LA CONEXION cn.Close()
End Try End Sub
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 11
Protected Sub BTNMODIFICAR_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BTNMODIFICAR.Click
Try 'RECUPERANDO LA LOGINTUD DEL FileUpload1 Dim longitud As Integer = FileUpload1.FileName.Length If longitud = 0 Then
Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Seleccione La Foto</strong></span>")
Exit Sub End If 'CAPTURANDO LA RUTA DE LA IMAGEN Dim ruta As String = FileUpload1.FileName 'GUARDANDO LA IMAGEN EN LA CARPETA FOTOS FileUpload1.SaveAs(Server.MapPath(".\\Fotos\\") + ruta) Dim cmd As New SqlCommand("Update Estudiantes set nom_est=@nombre,fecha=@fecha,esp_est=@especi,foto=@foto where cod_est=@codigo", cn) cmd.Parameters.Add("@codigo", SqlDbType.Char, 6).Value = lblcodigo.Text cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 50).Value = txtnombre.Text cmd.Parameters.Add("@fecha", SqlDbType.DateTime).Value = lblfecha.Text cmd.Parameters.Add("@especi", SqlDbType.VarChar, 30).Value = Drpespecialiadad.Text cmd.Parameters.Add("@foto", SqlDbType.Char, 11).Value = ruta
'ABRIENDO LA CONEXION cn.Open() 'NOS DEVUELVE SI NUMERO DE FILAS AFECTADAS Dim i As Integer = cmd.ExecuteNonQuery() 'PREGUNTAMOS SI AFECTO UNA FILA If (i > 0) Then
Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Se Actualizo Sastifactoriamente</strong></span>") 'LIMPIANDO A SER GRABADO 'LISTANDO LOS ESTUDIANTES AL SER GRABADO ListadoEstudiante() NuevoEstudiante()
Else Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Error al Actualizar</strong></span>")
End If Catch ex As Exception
Finally 'CERRANDO LA CONEXION cn.Close()
End Try End Sub
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 12
Protected Sub btneliminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btneliminar.Click
Try 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlDataAdapter Dim cadsql As String = "select * from Estudiantes where cod_est='" & lblcodigo.Text & "'" Dim da As New SqlDataAdapter(cadsql, cn) 'CREANDO UNA TABLA VACIA PARA GUARDAR LOS DATOS EN MEMORIA Dim tbl As New DataTable 'LLENANDO LOS DATOS PROCESADOS EN EL DataTable MEDIANTE EL METODO(FILL) da.Fill(tbl) Dim ruta As String = Server.MapPath(".\\Fotos\\") + tbl.Rows(0)(4).ToString 'ELIMINANDO LA IMAGEN DE NUESTRA CARPETA SERVIDOR FOTOS File.Delete(ruta) 'PROCESANDO UNA SENTENCIA SQL MEDIANTE EL SqlCommand Dim cmd As New SqlCommand("delete from Estudiantes Where cod_est=@codigo", cn) cmd.Parameters.Add("@codigo", SqlDbType.Char, 6).Value = lblcodigo.Text 'ABRIENDO LA CONEXION cn.Open() 'NOS DEVUELVE SI NUMERO DE FILAS AFECTADAS Dim i As Integer = cmd.ExecuteNonQuery() 'PREGUNTAMOS SI AFECTO UNA FILA If (i > 0) Then
Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Se Elimino Sastifactoriamente</strong></span>") 'LIMPIANDO A SER GRABADO 'LISTANDO LOS ESTUDIANTES AL SER GRABADO ListadoEstudiante() NuevoEstudiante()
Else Response.Write("<span style='color: #ff0066; background color: #ffff99'><strong>Error al Eliminar</strong></span>")
End If Catch ex As Exception
Finally 'CERRANDO LA CONEXION cn.Close()
End Try End Sub
Protected Sub btnsalir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnsalir.Click
btnsalir.Attributes.Add("Onclick", "window.close()") End Sub End Class
PROGRAMANDO CON ADO.NET
RICHARD NAJARRO TALAVERANO Página 13