visual studio .net - ado.net i

Upload: carlos

Post on 08-Apr-2018

248 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    1/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    LABORATORIO ADO.NET 1.

    Derechos Reservados, solo para ser usados dentro de lainstitucin.

    Derechos de Autor

    El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no sepuede reproducir, transcribir, almacenar a un sistema de recuperacin o de alteracin,

    asimismo la traduccin a otro idioma de ninguna forma o por ningn medio mecnico,manual, electrnico, magntico, ptico o de otro modo.

    La persecucin de una reproduccin no autorizada tiene comoconsecuencia la crcel y/o multas.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    2/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    1ADO.NET

    1 Arquitectura y funcionalidad de ADO.NETLos objetivos concretos de esta clase son los siguientes:

    Conocer los distintos conceptos relacionados con la Arquitectura de ADO.NET. Usar algunos de los diferentes proveedores de datos .NET. Conocer la estructura del NameSpaces relativos a datos y XML. Aprender a usar los objetos:

    Connection.Command.DataReader.DataSet.DataAdapter.

    Trabajar en modo conectado y desconectado.

    1.1 Introduccin

    El Mundo de ADO.NET agrupa un conjunto de libreras para acceso a datos, desde un origen basado ya seaen una base de datos, Archivos XML, documentos de texto, Hojas de calculo. El uso y entendimiento de

    ADO.NET se debe basar en el estudio de sus principales clases que proporciona.

    El espacio de nombre Data.La clase Connection.La clase Command.La clase DataReader.La clase DataSet.La clase DataAdapter.

    Las aplicaciones con acceso a datos realizan operaciones de lectura, actualizacin, eliminacin y registrosobre un repositorio de datos, la plataforma .Net proporciona un mejoramiento el tratamiento de lasactualizaciones y ofrece la integracin la integracin de datos en aplicaciones distribuidas y escalables.

    Una de las caractersticas de ADO.NET es el tratamiento de los datos, a nivel estructurado es decir la

    informacin contenida puede ser fcilmente llevado a un archivo XML y dar otro tipo de uso, as comotambin poder leer un archivo XML debidamente validado y ser llevado a un origen de datos.

    ADO.NET forma parte del NET. Framework esta inmerso y pertenece como parte del sistema operativo y nocomo era anteriormente que por cada cliente haba que alojar el manejador de datos junto con el instaladorde la aplicacin y realizar en forma redistribuible.

    Ahora estaremos abocados al desarrollo de aplicaciones sin preocuparnos si donde se instalara la aplicacinse encontraran las libreras usadas.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    3/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    En la actualidad ADO.NET ya es parte del .NET Framework, quiere decir que ADO.NET es parte del sistemaoperativo y no ms un redistribuible que se necesita alojar junto al cliente o junto al instalador de unaaplicacin. Esto significa que nosotros, como desarrolladores, estaremos enfocados ms al acceso a datos ya la lgica para manipular estos datos, y no tendremos porqu preocuparnos en las libreras del cliente.

    A continuacin se detallan algunos conceptos bsicos que se indican por variosautores:

    ADO.NET es una tecnologa de acceso a datos que se basa en los objetosADO (Objetos de Datos ActiveX) anteriores.

    Es una manera nueva de acceder a los datos construida sobre ADO;ADO.NET puede coexistir con ADO.

    Adems podemos decir que ADO.NET es un conjunto de clases queexponen servicios de acceso a datos al programador de .NET.

    ADO.NET proporciona un conjunto variado de componentes para crearaplicaciones distribuidas de uso compartido de datos. Forma parteintegral de .NET Framework, y proporciona acceso a datos relacionales,datos XML y datos de aplicaciones.

    ADO.NET es compatible con diversas necesidades de programacin,incluida la creacin de clientes de bases de datos clientes y objetosempresariales de nivel medio utilizados por aplicaciones, herramientas,lenguajes o exploradores de Internet.

    ADO.NET utiliza un modelo de acceso pensado para entornosdesconectados. Esto quiere decir que la aplicacin se conecta al origende datos, hace lo que tiene que hacer, por ejemplo seleccionar registros,los carga en memoria y se desconecta del origen de datos.

    ADO.NET es un conjunto de clases que usted utiliza para acceder ymanipular orgenes de datos como por ejemplo, una base de datos enSQL Server o una planilla Excel.

    ADO.NET utiliza XML como el formato para transmitir datos desde yhacia su base de datos y su aplicacin Web.

    En este modulo hay 3 espacios de nombres que se importar en un formulario Web o formulario Windows siesta usando objetos de ADO.NET:

    System.Data, para la arquitectura de ADO.Net. System.Data.SqlClient para uso exclusivo de SqlServer. System.Data.OleDb y para uso de Bases de OleDB, etc.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    4/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    El modelo de objetos ADO.NET provee una estructura de acceso a distintos orgenes de datos. En elsiguiente grafico se visualiza como se comportan dichos objetos.

    1.2 Espacios de nombres para datos en el .NET Framework.

    Entre los espacios de nombres de .NET Framework relativos a datos y XML se incluyen:

    System.DataRepresenta el espacio de nombres principal de ADO.Net, contiene las clases que soportan el modelode ADO.NET, Representan la arquitectura del modelo para tener acceso a los datos de las

    aplicaciones administrada. Por ejemplo al usar este espacio de nombres podemos usar la principalclase, el DataSet.

    System.Data.CommonEste espacio de nombres proporciona las clases para los proveedores de datos que soporta el .NetFramework. Es as como cada proveedor obtiene las clases especializadas para ser utilizadas paraun origen de datos en el espacio administrado.

    System.XmlEspacio de nombre que proporciona las clases de tratamientos de archivos XML, para XML degrandes volmenes, para archivos pequeos, para la escritura, para la lectura, etc.

    System.Data.OleDbLas clases de OleDb carga las clases exclusivas para el manejo de datos compatibles con los

    orgenes de datos que proporciona el motor OleDb, realizan comandos de conexin y ejecucin parale mantenimiento de datos, as como la administracin del origen usado.

    System.Data.SqlClientLas clases de SqlClient proporcionan la administracin de datos para el proveedor de SQL Server,que permite conectarse a un origen de datos a partir del SQL Server 7.0, y ejecutar comandos deactualizacin y lectura. Este espacio de nombres es similar al espacio de nombresSystem.Data.OleDb, pero que es optimizado para el acceso a SQL Server 7.0 y versionesposteriores.

    Connection

    Transaction

    Command

    Parameters

    DataReader

    DataReader

    SelectCommand

    UpdateCommand

    DeleteCommand

    InsertCommand

    DataSet

    DataTableCollection

    DataRelationCollection

    DataTable

    DataRowCollection

    DataColumnCollection

    ConstraintCollection

    XMLBase de Datos

    Ar uitectura del Modelo de ADO.NET

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    5/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    System.Data.SqlTypesNos proporciona tipos de datos nativos de SQL Server, como Varchar(n), Char(n), Tinyint, etc.

    System.Data.OracleClient Estas clases permiten el acceso a orgenes de proveedor de datos Oracle en el espacio administrado.

    1.3 El proveedor de datos .NET Framework

    Los proveedores de datos o motor de datos del .NET Framework nos proporciona un marco de trabajo parapoder conectarnos a una base de datos para su uso de ejecutar comandos. En esta forma de trabajo losresultados se procesan con las clases y se llenan en un DataSet de ADO.NET con el fin de mostrarlos a losusuarios para su uso y administracin.

    Las clases de tratamiento de datos proporcionan una forma ms flexible para el tratamiento de datos,establece dos marcos de trabajo en forma conectada que es lo usual en toda aplicacin y en formadesconectada que es una alternativa de solucin para el tratamiento de datos.

    Proveedor de datos de .NETFramework para:

    Descripcin

    SQL Server Para Microsoft SQL Server versin 7.0 o posteriores.

    OLE DB Para orgenes de datos que se exponen mediante OLE DB.

    ODBC Para orgenes de datos que se exponen mediante ODBC.

    Oracle Para orgenes de datos de Oracle.

    1.4 Objetos provistos por distintos proveedores de datos .NET

    Los objetos bsicos que te proporciona ADO.NET son: Connection, Command, DataReader y DataAdapterson los elementos fundamentales del modelo de proveedor de datos de .NET Framework. En la tablasiguiente se describen estos principales objetos.

    Objeto Descripcin Objeto SQL Server Objeto OleDB

    Connection

    Establece una conexin a un origende datos determinado (En queservidor nos conectamos?, Que Basede Datos Usaremos?, Que tipo deSeguridad vamos a usar?.

    SqlConnection OleDBConnection

    CommandEjecuta un comando en un origen dedatos (Registrar, Modificar, Eliminar,Seleccionar, etc.).

    SqlCommand OleDBCommand

    DataReader

    Lee una secuencia de datos de sloavance y slo lectura desde unorigen de datos (Como mostramosinformacin en forma secuencial?).

    SqlDataReader OleDBDataReader

    DataAdapter

    Llena un DataSet y realiza lasactualizaciones necesarias en elorigen de datos desde el DataSet.(Como realizamos todo lo anteriorcon un solo objeto?)

    SqlDataAdapter OleDBDataAdapter

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    6/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    La siguiente ilustracin muestra los componentes principales de una aplicacin ADO.NET.

    1.5 Modelo de cmo se ejecuta el llenado de un DataSet

    1.6 Estudiando el Objeto SqlConnection

    Este objeto representa una conexin hacia una base de datos de SQL Server, el objeto SqlConnectionrepresenta el objeto que administra la conexin tanto para la creacin de un instancia y generacin deejecucin de comandos. El SqlConnection se utiliza junto con SqlDataAdapter y SqlCommand pararealizar el mantenimiento de un origen de datos, y aumentar el rendimiento de la conexin a una base dedatos de Microsoft SQL Server

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    7/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    ConnectionStringObtiene o establece la cadena utilizada para abrir una base de datos de SQL Server.

    DatabaseObtiene el nombre de la base de datos actual o de la que se va a utilizar una vez que se abre laconexin.

    DataSourceObtiene el nombre de la instancia del Servidor SQL Server con la que se va a establecer laconexin.

    ChangeDatabaseCambia la base de datos actual de una conexin SqlConnection abierta dentro del mismo servidoconectado.

    OpenAbre una conexin de base de datos con los valores de propiedad que especifica el ConnectionStringo la cadena de conexin cargada.

    CloseCierra la conexin con la base de datos, para liberar el comando realizado.

    CreateCommandCrea y devuelve un objeto SqlCommand asociado a la conexin SqlConnection.

    Crear un nuevo proyecto

    Este proyecto debe ser basado en Aplicacin Windows, con el nombre BDNegocio_ADO.NET1.- El diseo del formulario sera el siguiente:

    II.- Para esto crearemos un formulario con el nombre frmConexion, en el espacio de codigo necesitamoscargar dos espacios de nombres necesarios cada vez que utilicen objetos de base de datos, que sonSystem.Data y System.Data.SqlClient.

    Imports System.Data

    Imports System.Data.SqlClient

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    8/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    PublicClass frmConexion

    EndClassIII.- El formulario debe quedar diseado como muestra la figura:

    Este formulario lo que hara es probar si es que tenemos conexin a la base de datos a la cual nos queremosconectar. Para esto se utilizara un objeto SqlConnection el cual necesita como parametro de entrada uncadena de texto que infome tanto el servidor, base de datos, tipo de seguridad, usuario y contrasea estos

    dos si es que tuivieramos autenticacin basada en SqlServer.

    Cadena de Conexin:

    Data Source=[Servidor];Initial Catalog=[Base de Datos]; Integrated

    Security=[Tipo de Seguridad]

    Por Ejemplo, se debe crear las variables que representara la cadena de conexin y el objeto conexin, en unambito general del formulario:

    PublicClass frmConexion

    Dim strCon AsString

    Dim xCon As SqlConnection

    EndClass

    Analizando la Cadena de Conexin

    IV.- La cadena de conexin, re presenta la cadena que ser leda por el proveedor, el cual se comunicaracon el servidor y la base de datos mencionadas en esta cadena.

    Data Source = PrincesaIndica el nombre de la maquina donde se encuentra nuestra base de datos.Mi PC Propiedades Nombre del Equipo.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    9/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    User=parisEl usuario con el que se entra al SQL Server, en este caso el usuario es paris, comnmente elusuario por defecto es sa. Esto tendramos que indicarlo si es que si utilizamos el tipo deautenticacin SQL Server.

    Integrated Security = SSPIIndica que usa seguridad integrada.Para conectarse a bases de datos de servidor se recomienda utilizar la autenticacin de Windowsque es la autenticacion cuando nos logeamos al inicio del sistema operativo, conocida comnmentecomo seguridad integrada. Para especificar la autenticacin de Windows, se puede utilizar cualquiera

    de los dos siguientes:

    Integrated Security=true;Integrated Security=SSPI;

    Initial Catalog = NorthwindNombre de la base de datos, donde se realizara las consultas.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    10/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    V.- Escribir lo siguiente dentro del botn Probar Conexin I:

    strCon = "Data Source=" + txtServidor.Text + _

    ";Initial Catalog=" + txtBDI.Text + _

    ";Integrated Security=True"

    xCon = New SqlConnection(strCon)

    Try

    xCon.Open()

    xCon.Close()

    MessageBox.Show("Conexion Sastisfactoria")

    Catch ex As Exception

    MessageBox.Show("Hubo problemas con la conexion:" + ex.Message)

    EndTry

    V.- Escribir lo siguiente dentro del botn Probar Conexin II:

    Try

    xCon.Open()

    xCon.ChangeDatabase(Me.txtBDII.Text)

    'Podemos realizar operaciones sobre la base II

    xCon.Close()

    MessageBox.Show("Conexion Sastisfactoria")

    Catch ex As Exception

    MessageBox.Show("Hubo problemas con la conexion:" + ex.Message)

    EndTry

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    11/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    1.7 Estudiando el Objeto SqlDataAdapter

    Este objeto es uno de los mas importante y nuevos que viene con la plataforma .NET, esta clase proporcionaun conjunto de comandos de datos y conexin a base de datos, que es usado para llenar en un DataSet yrealizar la creacion dentro de este DataTables que representa el conjunto de datos extraido de la base dedatos. Adems proporciona comandos de actualizacin sobre la el conjunto de datos que extrajo.

    El objeto SqlDataAdapter se utiliza como una conexin entre el DataSet y SQL Server para la recuperacin yactualizacin de datos. Para el llenado de un DataSet lo realiza mediante la ejecucin del comando Fill, quecambia los datos en DataSet para que coincidan con los datos del origen de datos; y usa el comandoUpdate, que realiza la actualizacin desde el dataset a su origen de datos mediante comandos deactualizacion correspondientes.

    DeleteCommandRealiza la instruccin Transact-Sql para la eliminacin de registros o mediante la ejecucin delprocedimiento almacenado correspondiente

    InsertCommandRealiza la instruccin Transact-Sql para la insercin de registros o mediante la ejecucin delprocedimiento almacenado correspondiente

    SelectCommandRealiza la instruccin Transact-Sql para la seleccin o muestra de registros o mediante la ejecucindel procedimiento almacenado correspondiente.

    UpdateCommandRealiza la instruccin Transact-Sql para la modificacin o mediante la ejecucin del procedimientoalmacenado correspondiente.

    FillRealiza el llenado de un conjunto de registros mediante el comando SelectComand hacia un DataSet,creando dentro del DataSet el objeto DataTable.

    FillSchema

    Agrega al DataTable creado en el DataSet y realiza la configuracin del esquema para hacerlocoincidir con el del origen de datos.

    UpdateRealiza las instrucciones INSERT, UPDATE o DELETE respectivas para cada fila insertada, actualizadao eliminada en DataSet, para esto lo realiza mediante los comandos InsertCommand,UpdateCommand y el DeleteCommand.

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    12/14

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    13/14

  • 8/7/2019 Visual Studio .NET - ADO.NET I

    14/14

    Sistemas UNI. Instructor: V. Carlos, Segura P.

    UNIVERSIDAD NACIONAL DE INGENIERIAFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

    La ultima forma que hubiramos realizado es crear DataTables en vez de un DataSet, para esto hubiramosdefinido 3 DataTables de la forma siguiente:

    Dim Dt_Employ AsNew DataTableDim Dt_Region AsNew DataTableDim Dt_Territorio AsNew DataTable

    Y para llenarlos seria:

    adapter1.Fill(Dt_Employ)adapter2.Fill(Dt_Region)adapter3.Fill(Dt_Territorio)

    Para mostrar la informacin individual se utilizara la propiedad Tables del DataSet especificando el nombreque se le puso:

    DataGrid.DataSource = Ds.Tables("Employees") DataGrid.DataSource = Ds.Tables("Region ") DataGrid.DataSource = Ds.Tables("Territories ")

    En el caso que no se le puso nombre seria as:

    DataGrid.DataSource = Ds.Tables(0) DataGrid.DataSource = Ds.Tables(1) DataGrid.DataSource = Ds.Tables(2)

    Y para el tercer caso solo seria igualar al DataTable que queremos mostrar:

    DataGrid.DataSource = Dt_Employ DataGrid.DataSource = Dt_Region DataGrid.DataSource = Dt_Territorio

    Modelo de Uso de los Objetos:

    S lConnection

    Cadena de Conexin

    SqlDataAdapter

    Fill

    Open

    Close DataSet

    SqlDataAdapter