programando con ado.net

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

Upload: richard-najarro-talaverano

Post on 18-Nov-2014

900 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 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.

Page 2: Programando con ADO.NET

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

Page 3: Programando con ADO.NET

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

Page 4: Programando con ADO.NET

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

Page 5: Programando con ADO.NET

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

Page 6: Programando con ADO.NET

PROGRAMANDO CON ADO.NET

RICHARD NAJARRO TALAVERANO Página 6

Page 7: Programando con ADO.NET

PROGRAMANDO CON ADO.NET

RICHARD NAJARRO TALAVERANO Página 7

Mantenimiento de la Tabla Estudiante

Aplicación 1: Default.aspx

Page 8: Programando con ADO.NET

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

Page 9: Programando con ADO.NET

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

Page 10: Programando con ADO.NET

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

Page 11: Programando con ADO.NET

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

Page 12: Programando con ADO.NET

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

Page 13: Programando con ADO.NET

PROGRAMANDO CON ADO.NET

RICHARD NAJARRO TALAVERANO Página 13