Sie sind auf Seite 1von 15

Temario para introduccion c Sharp.

esin 3: El Objeto DataSet


y y

Introduccin el objeto DataSet Creacin de objetos DataSet propiedades de un objeto DataSet

DataSet. Anteriormente hemos explicado rpidamente las diferencias entre usar objetos DataSet (mtodos desconectados) y los objetos DataReader (mtodos conectados). Por lo tanto ya sabemos que al trabajar con objetos DataSet, estos nos permiten acceder de un modo desconectado a nuestra base de datos. Estos objetos nos permiten recoger informacin, actualizar datos, eliminarlos, aadirlos, etc... Al tratarse de un modelo desconectado, los objetos DataSet pueden ser independientes de la tecnologa utilizada como base de datos. Por lo tanto podemos definir un DataSet como una entidad desconectada (independiente) que no conoce ni la fuente ni el origen de datos, esta independencia se consigue gracias al formato estandarizado XML. Un DataSet al igual que una base de datos puede estar formado por varias tablas (filas y columnas), vistas, relaciones, etc... En la siguiente figura puedes ver el modelo de objetos de un DataSet:

Esta figura nos muestra lo que hemos estado comentando, un DataSet es un copia en memoria de nuestro modelo de datos, por lo tanto tenemos tablas, con sus filas y columnas, relaciones y propiedades extendidas.
y

y y

Tables. Se compone de un objeto DataTableCollection el cual puede formarse por una o mas DataTable. Un objeto DataTable representa una de las tablas de nuestra fuente de datos. Un DataTable est formado a su vez por colleciones de filas (Rows) y columnas (Columns) que podrn contener una o ms filas (DataRow) o columnas (DataColumn). Relaciones. Se trata de colecciones de relaciones que pueden asociar tablas con claves forneas. Propiedades extendidas. Hace referencia a colecciones de propiedades que pueden ser asignadas al DataSet en el momento de ser creado.

Tenemos tres modos diferentes de trabajar con los objetos DataSet:


y y

Crear objetos DataTable dentro del DataSet para almacenar los datos mediante programacin. Recoger la informacin de una base de datos, de modo que llenemos el DataSet con estos datos mediante un objeto "puente" entre el DataSet y la base de datos que recibe el nombre de DataAdapter. Trabajar con la informacin mediante fuentes de datos XML.

Para que puedas comprender el objeto DataSet es imprescindible entender primero el el objeto DataTable, a continuacin veremos como trabajar con DataTable, y ms adelante veremos como incluir estos objetos en los DataSet.

y y y y y

Objeto DataTable crear una tabla desde el objeto DataSet Creacin de campos desde un objeto DataSet Definir un campo clave agregar mas tablas a un objeto DataSet Relaciones entre tablas creacin de un relacin de tablas Creacin de una relacin para un DataSet con tipo iniciacin a la vinculacin de datos en ADO .NET

// http://msdn.microsoft.com/es-es/library/aa719809%28v=vs.71%29.aspx// Un objeto DataSet est formado por un conjunto de tablas, relaciones y restricciones. En ADO .NET, los objetos DataTable se usan para representar las tablas de un DataSet. Un objeto DataTable representa una tabla de datos relacionales de la memoria; los datos son locales de la aplicacin basada en .NET en la que residen, pero se pueden llenar desde un origen de datos Microsoft SQL Server mediante un DataAdapter. Para obtener ms informacin, vea Llenar un DataSet desde un DataAdapter. La clase DataTable es miembro del espacio de nombres System.Data dentro de la biblioteca de clases de .NET Framework. Se puede crear y usar DataTable de manera independiente o como miembro de un DataSet, y los objetos DataTable se pueden utilizar tambin en combinacin con otros objetos de .NET Framework, incluido DataView. Al conjunto de tablas de un DataSet se puede tener acceso mediante la propiedad Tables del objeto DataSet. El esquema o la estructura de una tabla se representan mediante columnas y restricciones. El esquema de un objeto DataTable se define con objetos DataColumn adems de objetos ForeignKeyConstraint y UniqueConstraint. Las columnas de una tabla se pueden asignar a columnas de un origen de datos, pueden contener valores calculados de expresiones, aumentar sus valores automticamente o contener valores de clave principal. Adems del esquema, un objeto DataTable debe tener tambin filas en las que albergar y ordenar los datos. La clase DataRow representa los datos reales que contiene una tabla. La clase DataRow, sus propiedades y mtodos se usan para recuperar, evaluar y manipular los datos de una tabla. Cuando se tiene acceso a los datos de una fila y se cambian, el objeto DataRow mantiene tanto su estado actual como el original. Se pueden crear relaciones primarias-secundarias entre tablas usando una o varias columnas relacionadas de las tablas. Se pueden crear relaciones entre objetos DataTable

con un objeto DataRelation. Los objetos DataRelation se pueden usar despus para devolver las filas relacionadas, secundaria o primaria, de una fila concreta. Para obtener ms informacin, vea Agregar una relacin entre tablas. En esta seccin Crear DataTable Explica cmo se crea un objeto DataTable y se agrega a un objeto DataSet. /// http://es.scribd.com/doc/55960246/4/Leccion-acceso-a-datos-con-DataSets

1 4 A c ce s o a da t os c o n M i c r os o ft A D O. NE T Leccin: acceso a datos con DataSets C r e a r u n D a t a A d a pt e r Crear un DataSet D e m o s t r a c i n : u t i l iz a r p r og ra m t i ca m e n t e un D a t a S e t U t i l i z a r u n D a t a V ie w P r ct i c a : o rg a n i z a r c d ig o p a ra c re a r un D a t a S e t Vincular un DataSeta un control enlazado a lista P r c t i c a d i r i g i d a p o r e l i n s t r u c t o r : v i s u a l i z a r u n DataSet G e s t i n de e r r o r e s ***************************** El objeto DataSet representa una copia local de los datos que provienen de unao ms fuentes de datos. El uso de un objeto DataSet permite que un formularioWeb Form se ejecute de forma semi-independiente de las fuentes de datos. Elobjeto DataSet puede utilizar un objeto DataAdapter

para cargar los datos deuna fuente de datos y puede desconectarse de la misma. El usuario puedeentonces utilizar y manipular los datos. Cuando los datos necesitan seractualizados contra la fuente de datos, se utiliza un objeto DataAdapter paravolver a conectarse y actualizar la fuente de datos.En esta leccin, estudiaremos cmo utilizar los objetos DataSet para soportar elalmacenamiento local de datos y los requerimientos de manipulacin de losformularios Web Forms.En esta leccin, aprenderemos a:

Crear un objeto DataAdapter para enlazar un objeto DataSet a una fuentede datos.

Crear un objeto DataSet para guardar datos de una fuente de datos.

Utilizar objetos DataView para guardar un subconjunto de datos de unobjeto DataSet .

Vincular un objeto DataSet y un objeto DataView a un control enlazado alista.

Gestionar los errores tpicos que nos encontramos en el acceso a datos. IntroduccinObjetivos de la leccin El objeto DataSet representa una copia local de datos de una fuente de datos.Cuando se utiliza sin una fuente de datos, el objeto DataSet

resulta til paraguardar datos locales a los cuales pueden acceder los formularios Web Forms.Sin embargo, para actuar como una herramienta de gestin de datos real, unobjeto DataSet debe poder interactuar con una o ms fuentes de datos. Paraconseguir esta interaccin, el .NET Framework proporciona las clases SqlDataAdapter y OleDbDataAdapter .Un objeto DataAdapter acta como enlace entre un objeto DataSet y unafuente de datos que puede utilizarse para recuperar y guardar datos. La clase DataAdapter representa un conjunto de comandos de base de datos y unaconexin a una base de datos que utilizamos para rellenar un objeto DataSet yactualizar la fuente de datos. Cada objeto DataAdapter intercambia datos entreun nico objeto DataTable en un objeto DataSet y un nico conjunto deresultados de una instruccin SQL o un procedimiento almacenado.Visual Studio .NET pone a disposicin dos clases principales DataAdapter para su uso con bases de datos:

Clase OleDbDataAdapter Esta clase es adecuada para utilizarse con cualquier fuente de datos expuestapor un OLE DB Data Provider.

Clase SqlDataAdapter Esta clase es especfica para una base de datos SQL Server versin 7.0 oposterior. El objeto SqlDataAdapter es ms rpido que el objeto OleDbDataAdapter porque funciona directamente con SQL Server y nodebe funcionar a travs de una capa OLE DB Data Provider.Adems, las clases

DataAdapter para otros tipos de fuentes de datos puedenintegrarse con Visual Studio .NET Cuando utilizamos objetos DataAdapter para intercambiar datos entre unobjeto DataSet y una fuente de datos, podemos especificar las acciones quedeseamos realizar utilizando una de las cuatro propiedades DataAdapter . Laspropiedades DataAdapter ejecutan una instruccin SQL o invocan unprocedimiento almacenado.Las propiedades que estn disponibles con la clase DataAdapter se muestranen la siguiente tabla. Propiedad FuncinSelectCommand La propiedad SelectCommand recupera filas de la fuente dedatos. InsertCommand La propiedad InsertCommand escribe filas insertadas del DataSet a la fuente de datos. UpdateCommand La propiedad UpdateCommand escribe filas modificadas del DataSet a la fuente de datos. DeleteCommand La propiedad DeleteCommand elimina filas en la fuente dedatos. /Create a connectionSqlConnection conn = new SqlConnection("data source=localhost; initial catalog=pubs; " +"integrated security=true; persist security info=True;");//Create the DataAdapterSqlDataAdapter da = new SqlDataAdapter("select * from Authors", conn);

Acceso a datos con Microsoft ADO.NET 17 Crear un DataSet

Crear y poblar un DataSetcon DataTables El mtodo Fill ejecuta el SelectCommand Acceder a DataTable Dim ds As New DataSet()da.Fill(ds, "Authors") Dim ds As New DataSet()da.Fill(ds, "Authors")Dim r As DataRowDim str As StringFor Each r in _ds.Tables("Authors").Rowsstr &= r(2)str &= r("au_lname")Next Dim r As DataRowDim str As StringFor Each r in _ds.Tables("Authors").Rowsstr &= r(2)str &= r("au_lname")Nextds.Tables("Authors").Rows.Count ds.Tables("Authors").Rows.CountDataSet ds = new DataSet();da.Fill(ds, "Authors"); DataSet ds = new DataSet();da.Fill(ds, "Authors");ds.Tables["Authors"].Rows.Count; ds.Tables["Authors"].Rows.Count;string str="";foreach(DataRow r inds.Tables["Authors"].Rows){str += r[2];str += r["au_lname"];} string str="";foreach(DataRow r inds.Tables["Authors"].Rows){str += r[2];str += r["au_lname"];} ***************************** Para crear una copia local de una base de datos, creamos y poblamos un objeto DataSet utilizando objetos DataTable .El primer paso para crear un objeto DataSet es declarar el nombre del objeto DataSet . El siguiente cdigo crea un objeto DataSet denominado ds : Dim ds As New DataSet()DataSet ds = new DataSet(); Tras crear un objeto DataSet , rellenamos los objetos DataTable

creando unobjeto DataAdapter . Invocamos el mtodo Fill en el objeto DataAdapter yespecificamos el objeto DataTable que deseamos rellenar. El siguiente cdigorellena la tabla Authors del objeto DataSet ds utilizando un DataAdapter denominado da : da.Fill(ds, "Authors")da.Fill(ds, "Authors"); El mtodo Fill ejecuta implcitamente una consulta SQL en la propiedad SelectCommand del objeto DataAdapter . Los resultados de la consulta SQLse utilizan para definir la estructura del objeto DataTable , y para poblar la tablacon datos.

Create a connectionSqlConnection conn = new SqlConnection("data source=localhost; initial catalog=pubs; " +"integrated security=true; persist security info=True;");//Create the DataAdapterSqlDataAdapter da = new SqlDataAdapter("select * from Authors", conn); El siguiente cdigo de ejemplo muestra cmo crear un objeto SqlDataAdapter

da , e invocar a continuacin el mtodo

Fill para almacenar los datos en elobjeto DataSet

ds Create a connectionSqlConnection conn = new SqlConnection("data source=localhost;initial catalog=pubs; " +"integrated security=SSPI;persist security info=True;");//Create the DataSetDataSet ds = new DataSet();//Create the DataAdapterSqlDataAdapter da = new SqlDataAdapter("select * from Authors", conn);//Fill the DataSet dsda.Fill(ds, "Authors"); El segundo argumento del mtodo Fill es un nombre para el objeto DataTable que est creado. Utilizamos este nombre para acceder a los datos devueltos.Una vez insertados los datos en un objeto DataSet , podemos accederprogramticamente a los datos. Como muestra el siguiente cdigo, cada objeto DataSet est formado por uno o ms objetos DataTable a los que podemoshacer referencia por su nombre o posicin ordinal: Las clases DataRow y

DataColumn son los componentes principales de unaclase DataTable . Utilizaramos un objeto DataRow con sus propiedades ymtodos para recuperar y evaluar los valores de un objeto DataTable . DataRowCollection representa los objetos DataRow reales que se encuentranen el objeto DataTable ,y DataColumnCollection contiene los objetos DataColumn que describen el esquema del objeto DataTable . La propiedad Rows del objeto DataTable

proporciona acceso programtico a DataRowCollection . La propiedad Columns del objeto DataTable proporciona acceso programtico a DataColumnCollection . El siguiente cdigo de ejemplo agrega los nombres de columnas de un objeto DataSet al control ListBox denominado lstItems : foreach(DataColumn col in ds.Tables[0].Columns){lstItems.Items.Add(col.ColumnName);} Tanto el objeto DataRowCollection como el objeto DataColumnCollection tienen una propiedad Count

que nos permite determinar el nmero de filas ocolumnas de un objeto DataTable , como muestra el siguiente cdigo deejemplo: ds.Tables["Authors"].Rows.Count;ds.Tables["Authors"].Columns.Count; Contar las filas y columnas del objeto DataTable nos permite acceder a camposindividuales del objeto DataTable . Podemos acceder a campos por posicinordinal (basada-en-0) o por el nombre. En el siguiente cdigo, x es el ndice dela fila de datos a la que deseamos acceder: ds.Tables["Authors"].Rows[x][1]; ds.Tables["Authors"].Rows[x]["fieldname"]; El siguiente cdigo recorre en bucle cada fila del objeto DataTable denominado Authors y crea una cadena utilizando los campos segundo y au_lname de Authors :

string str = ""; foreach(DataRow r in ds.Tables["Authors"].Rows) { str += r[1]; str += r["au_lname"]; }

Sesin 4: Ambiente Desconectado


y y y y y y y y

Aplicaciones desconectadas. Qu es un DataAdapter. El modelo de objetos DataAdapter. Propiedades y mtodos del DataAdapter. Construyendo DataSets. Ambiente Desconectado Construyendo DataSet y DataTable. Estructura de una Tabla: DataColum y DataRow. Modificando datos de una Tabla

Sesin 5: Ambiente Conectado


y y y y y y

Modelo de objetos para aplicaciones conectadas. El objeto DataReader. Construyendo objetos Command. Creacin de objetos Parameter. Creacin de parmetros para comandos. Ejecucin de objetos Command. Uso de Store Procedure con objetos Command.

Sesin 6: DataSets fuertemente tipados


y y y y

Creacin de esquemas XSD Carga de esquema y datos en un DataSet Guardar un DataSet en XML DataSets fuertemenete tipados en ADO .NET 2.0

Sesin 7: Transaccin

y y y y

Administrando transacciones usando sentencias SQL. Administrando transacciones usando ADO NET. Usando Isolation Levels. Aplicaciones con Transacciones.

Sesin 8: Reportes
y y y y y

CrystalReport Como crear y usar un reporte mediante CrystalReport. Elementos de un reporte. Visualizar un reporte mediante el visor de CrystalReport. Agregando DataSets a un reporte.

Das könnte Ihnen auch gefallen