1.
Contenido
o Definición
Objetos
DataTable
Un objeto DataSet está formado por una
colección de tablas, relaciones y restricciones. En ADO.NET, DataTable objetos se utilizan para
representar las tablas en un conjunto de datos.A DataTable representa una tabla de
datos relacionales en memoria; los datos están locales para el. Aplicación de
red en el que reside, pero se pueden llenar desde un origen de datos como
Microsoft SQL Server mediante un DataAdapter para obtener más
información, consulte llenar
un DataSet desde un DataAdapter .
Objetos
DataSet
El DataSet de ADO.NET es una representación de datos
residente en memoria que proporciona un modelo de programación relacional
coherente independientemente del origen de datos que contiene. Un DataSet representa un conjunto completo de datos,
incluyendo las tablas que contienen, ordenan y restringen los datos, así como
las relaciones entre las tablas.
o Propiedades
DataSet
Ø CaseSensitive: Obtiene
o establece un valor que indica si comparaciones dentro de cadenas DataTable objetos
distinguen mayúsculas de minúsculas.
Ø
DefaultViewManager: Obtiene una vista personalizada de los datos contenidos en
el DataSet para permitir filtrar,
buscar y desplazarse mediante un personalizado DataViewManager.
Ø DesignMode: Obtiene un valor que indica si
el componente está actualmente en modo de diseño.(Heredado de MarshalByValueComponent).
Ø
EnforceConstraints: Obtiene o establece un valor que indica si se siguen las reglas
de restricción al intentar cualquier operación de actualización.
Ø Events: Obtiene la lista de controladores
de eventos que están asociados a este componente.(Heredado de MarshalByValueComponent).
Ø ExtendedProperties: Obtiene la colección de información personalizada del usuario
asociada a la DataSet.
Ø HasErrors: Obtiene un valor que indica si
hay errores en cualquiera de los DataTable objetos dentro
de esteDataSet.
Ø Locale: Obtiene o establece la
información de configuración regional utilizada para comparar las cadenas de la
tabla.
Ø
Relations: Obtiene la colección de
relaciones que vincula las tablas y permitir la navegación de primario tablas a
las tablas secundarias.
Ø
RemotingFormat: Obtiene o establece un SerializationFormat para el DataSet utilizado durante la
comunicación remota.
Ø Site: Obtiene o establece una
interfaz System.ComponentModel.ISite para
el objeto DataSet.(Invalida MarshalByValueComponent.Site).
DataTable
ü CaseSensitive: Indica si las comparaciones
de cadenas dentro de la tabla distinguen mayúsculas de minúsculas.
ü DefaultView: Obtiene una vista personalizada de
la tabla que puede incluir una vista filtrada o una posición del cursor.
ü DesignMode: Obtiene un valor que indica si el componente está actualmente en
modo de diseño.(Heredado de MarshalByValueComponent).
ü
DisplayExpression: Obtiene o establece la expresión que devuelve un valor utilizado
para representar esta tabla en la interfaz de usuario. El DisplayExpression propiedad le permite mostrar el nombre de esta tabla en una
interfaz de usuario.
ü
Events: Obtiene la lista de controladores de eventos que están asociados
a este componente.(Heredado de MarshalByValueComponent).
ü
HasErrors: Obtiene un
valor que indica si hay errores en cualquiera de las filas
en cualquiera de las tablas de la DataSet al
que pertenece la tabla.
ü
Locale: Obtiene o
establece la información de configuración regional utilizada para comparar las
cadenas de la tabla.
ü
Namespace: Obtiene
o establece el espacio de nombres para la representación XML de los datos
almacenados en el DataTable.
ü Prefix: Obtiene o establece el espacio de nombres para la
representación XML de los datos almacenados en el DataTable.
ü PrimaryKey: Obtiene
o establece una matriz de columnas que funcionan como claves principales para
la tabla de datos.
ü Site: Obtiene
o establece una interfaz System.ComponentModel.ISite para
el objetoDataTable.(Invalida MarshalByValueComponent.Site).
DataSet
Métodos
AcceptChanges():Confirma todos los cambios realizados en
esta DataSet desde que se cargó o desde la última
vez AcceptChanges se
llamó.
BeginInit():Activa
la inicialización de un objeto DataSet que se emplea en un formulario o que
utiliza otro componente. La inicialización se produce en tiempo de
ejecución.
Clear():Borra
la DataSet de los datos mediante la eliminación de
todas las filas de todas las tablas.
Clone():Copia
la estructura de la DataSet, todas las incluidas DataTable esquemas, relaciones y restricciones. No
copia los datos.
CreateDataReader():Devuelve un DataTableReader con
un conjunto de resultados por DataTable, en la misma secuencia que las tablas aparecen
en la Tables colección.
CreateDataReader(DataTable[]):Devuelve un DataTableReader con
un conjunto de resultados por DataTable.
DetermineSchemaSerializationMode(SerializationInfo, StreamingContext): Determina
el SchemaSerializationMode para un DataSet.
Dispose():Libera
todos los recursos que usa MarshalByValueComponent.(Heredado
de MarshalByValueComponent).
Dispose(Boolean): Libera
los recursos no administrados que usa MarshalByValueComponent y
libera los recursos administrados de forma opcional.(Heredado
de MarshalByValueComponent).
EndInit():Finaliza
la inicialización de un objeto DataSet que se emplea en un formulario o que
utiliza otro componente. La inicialización se produce en tiempo de
ejecución.
Finalize():Permite
que un objeto intente liberar recursos y realizar otras operaciones de limpieza
antes de que sea reclamado por la recolección de elementos no utilizados.(Heredado
de MarshalByValueComponent).
GetChanges():Obtiene una copia de la DataSet que contiene todos los cambios realizados
desde que se cargó o desde AcceptChanges por
última vez.
GetChanges(DataRowState): Obtiene
una copia de la DataSet que contiene todos los cambios realizados
desde que se cargó o desde AcceptChanges se
llama, filtrados por DataRowState.
GetDataSetSchema(XmlSchemaSet): Esta
API admite la infraestructura producto y no está diseñada para usarse
directamente desde el código. Obtiene una copia
de XmlSchemaSet del
conjunto de datos.
GetObjectData(SerializationInfo, StreamingContext): Rellena un objeto de información de
serialización con los datos necesarios para serializar el DataSet.
GetSchemaSerializable():Esta
API admite la infraestructura producto y no está diseñada para usarse
directamente desde el código. Devuelve un serializable T:System.Xml.Schema.XMLSchema instancia.
GetSerializationData(SerializationInfo, StreamingContext): Esta API admite la
infraestructura producto y no está diseñada para usarse directamente desde el
código. Deserializa los datos de la tabla de la
secuencia binaria o XML.
GetService(Type): Obtiene
el implementador de la IServiceProvider.(Heredado
de MarshalByValueComponent).
GetXmlSchema():Devuelve el esquema XML para la representación
XML de los datos almacenados en elDataSet.
HasChanges():Obtiene un valor que indica si la DataSet presenta cambios, incluidas filas nuevas,
eliminadas o modificadas.
HasChanges(DataRowState): Obtiene
un valor que indica si la DataSet presenta cambios, incluidas filas nuevas,
eliminadas o modificadas, filtrados por DataRowState.
InitializeDerivedDataSet():Esta
API admite la infraestructura producto y no está diseñada para usarse
directamente desde el código. La deserialización de
todos los datos de tablas del conjunto de datos de la secuencia binaria o XML.
IsBinarySerialized(SerializationInfo, StreamingContext): Inspecciona el formato de la representación
serializada de la DataSet.
Load(IDataReader, LoadOption, DataTable[]):Rellena un DataSet con los valores de un origen de datos con
el IDataReader,
utilizando una matriz de DataTable instancias para proporcionar la
información de esquema y espacio de nombres.
Load(IDataReader, LoadOption, String[]):Rellena un DataSet con los valores de un origen de datos con
el IDataReader,
utilizando una matriz de cadenas para suministrar los nombres de las tablas
dentro de la DataSet.
Merge(DataRow[], Boolean, MissingSchemaAction): Combina
una matriz de DataRow objetos
en actual DataSet, conservando o descartando los cambios
efectuados en el DataSet y
controlando un esquema incompatible de acuerdo con los argumentos
especificados.
Merge(DataSet, Boolean):
Combina un especificado DataSet y su esquema en el actual DataSet, conservando o descartando los cambios en
esta DataSet según
el argumento especificado.
Merge(DataSet, Boolean, MissingSchemaAction): Combina
un especificado DataSet y su esquema con el actual DataSet, conservando o descartando los cambios
efectuados en este DataSet y controlando un esquema incompatible de
acuerdo con los argumentos especificados.
Merge(DataTable, Boolean, MissingSchemaAction): Combina un especificado DataTable y su esquema en el actual DataSet, conservando o descartando los cambios
efectuados en el DataSet y
controlando un esquema incompatible de acuerdo con los argumentos
especificados.
RaisePropertyChanging(String): Envía una notificación de que el
especificado DataSet propiedad
que se va a cambiar.
ReadXml(Stream, XmlReadMode): Lee el esquema XML y datos en la DataSet con System.IO.Stream y XmlReadMode.
ReadXml(String, XmlReadMode): Lee el esquema XML y los datos del DataSet utilizando
el archivo especificado y XmlReadMode.
ReadXml(TextReader): Lee el
esquema XML y los datos del DataSet usando el objeto System.IO.TextReader.
ReadXml(TextReader, XmlReadMode):
Lee el esquema XML y datos en la DataSet con System.IO.TextReader y XmlReadMode.
ReadXml(XmlReader): Lee el
esquema XML y los datos del DataSet usando el objeto System.Xml.XmlReader
ReadXml(XmlReader, XmlReadMode): Lee el
esquema XML y datos en la DataSet con System.Xml.XmlReader y XmlReadMode.
ReadXmlSerializable(XmlReader): Esta API admite la infraestructura producto y no está
diseñada para usarse directamente desde el código. Omite
los atributos y devuelve un conjunto de datos vacío.
RejectChanges(): Deshace todos los cambios realizados en
el DataSet desde que se creó
o desde la última vez DataSet.AcceptChanges se
llamó.
Reset(): Borra todas las tablas
y quita todas las relaciones, restricciones externas y tablas de la DataSet. Las subclases
deben reemplazar Reset para
restaurar un DataSet a su estado
original.
ToString():Devuelve
un String que
contiene el nombre de la Component,
si existe. Este método no se debe invalidar.(Heredado
de MarshalByValueComponent).
WriteXml(Stream, XmlWriteMode): Escribe los datos actuales y, opcionalmente,
el esquema para el DataSet usando el objeto System.IO.Stream y XmlWriteMode. Para
escribir el esquema, establezca el valor de la mode parámetro WriteSchema.
WriteXml(String, XmlWriteMode): Escribe
los datos actuales y, opcionalmente, el esquema para el DataSet en el archivo especificado utilizando el
parámetro XmlWriteMode. Para
escribir el esquema, establezca el valor de la mode parámetro WriteSchema.
WriteXml(TextWriter, XmlWriteMode): Escribe
los datos actuales y, opcionalmente, el esquema para el DataSet usando el objeto TextWriter y XmlWriteMode. Para
escribir el esquema, establezca el valor de la mode parámetro WriteSchema
WriteXml(XmlWriter, XmlWriteMode)
: Escribe los datos
actuales y, opcionalmente, el esquema para el DataSet usando el objeto XmlWriter y XmlWriteMode. Para
escribir el esquema, establezca el valor de la mode parámetro WriteSchema.
WriteXmlSchema(Stream): Escribe
el DataSet estructura como un esquema XML
especificado System.IO.Streamobjeto.
WriteXmlSchema(Stream, Converter<Type, String>): Escribe
el DataSet estructura como un esquema XML
especificado System.IO.Streamobjeto.
WriteXmlSchema(String, Converter<Type, String>): Escribe
el DataSet estructura como un esquema XML a un
archivo.
WriteXmlSchema(TextWriter): Escribe
la estructura DataSet como un esquema XML al objeto TextWriter especificado.
WriteXmlSchema(TextWriter, Converter<Type, String>): Escribe el DataSet estructura como un esquema XML
especificado TextWriter.
WriteXmlSchema(XmlWriter, Converter<Type, String>): Escribe
el DataSet estructura como un esquema XML
especificado XmlWriter.
o Ejemplos
DataTable
se
crean dos objetos DataTable, un objeto DataRelation y
se agregan los nuevos objetos a DataSet. A continuación, las tablas
se muestran en un control DataGridView.
// Put the next line into the Declarations section.
private System.Data.DataSet dataSet;
private void MakeDataTables()
{
// Run all of the functions.
MakeParentTable();
MakeChildTable();
MakeDataRelation();
BindToDataGrid();
}
private void MakeParentTable()
{
// Create a new DataTable.
System.Data.DataTable table = new DataTable("ParentTable");
// Declare variables for DataColumn and DataRow objects.
DataColumn column;
DataRow row;
// Create new DataColumn, set DataType,
// ColumnName and add to DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
// Add the Column to the DataColumnCollection.
table.Columns.Add(column);
// Create second column.
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "ParentItem";
column.AutoIncrement = false;
column.Caption = "ParentItem";
column.ReadOnly = false;
column.Unique = false;
// Add the column to the table.
table.Columns.Add(column);
// Make the ID column the primary key column.
DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["id"];
table.PrimaryKey = PrimaryKeyColumns;
// Instantiate the DataSet variable.
dataSet = new DataSet();
// Add the new DataTable to the DataSet.
dataSet.Tables.Add(table);
// Create three new DataRow objects and add
// them to the DataTable
for (int i = 0; i<= 2; i++)
{
row = table.NewRow();
row["id"] = i;
row["ParentItem"] = "ParentItem " + i;
table.Rows.Add(row);
}
}
private void MakeChildTable()
{
// Create a new DataTable.
DataTable table = new DataTable("childTable");
DataColumn column;
DataRow row;
// Create first column and add to the DataTable.
column = new DataColumn();
column.DataType= System.Type.GetType("System.Int32");
column.ColumnName = "ChildID";
column.AutoIncrement = true;
column.Caption = "ID";
column.ReadOnly = true;
column.Unique = true;
// Add the column to the DataColumnCollection.
table.Columns.Add(column);
// Create second column.
column = new DataColumn();
column.DataType= System.Type.GetType("System.String");
column.ColumnName = "ChildItem";
column.AutoIncrement = false;
column.Caption = "ChildItem";
column.ReadOnly = false;
column.Unique = false;
table.Columns.Add(column);
// Create third column.
column = new DataColumn();
column.DataType= System.Type.GetType("System.Int32");
column.ColumnName = "ParentID";
column.AutoIncrement = false;
column.Caption = "ParentID";
column.ReadOnly = false;
column.Unique = false;
table.Columns.Add(column);
dataSet.Tables.Add(table);
// Create three sets of DataRow objects,
// five rows each, and add to DataTable.
for(int i = 0; i <= 4; i ++)
{
row = table.NewRow();
row["childID"] = i;
row["ChildItem"] = "Item " + i;
row["ParentID"] = 0 ;
table.Rows.Add(row);
}
for(int i = 0; i <= 4; i ++)
{
row = table.NewRow();
row["childID"] = i + 5;
row["ChildItem"] = "Item " + i;
row["ParentID"] = 1 ;
table.Rows.Add(row);
}
for(int i = 0; i <= 4; i ++)
{
row = table.NewRow();
row["childID"] = i + 10;
row["ChildItem"] = "Item " + i;
row["ParentID"] = 2 ;
table.Rows.Add(row);
}
}
private void MakeDataRelation()
{
// DataRelation requires two DataColumn
// (parent and child) and a name.
DataColumn parentColumn =
dataSet.Tables["ParentTable"].Columns["id"];
DataColumn childColumn =
dataSet.Tables["ChildTable"].Columns["ParentID"];
DataRelation relation = new
DataRelation("parent2Child", parentColumn, childColumn);
dataSet.Tables["ChildTable"].ParentRelations.Add(relation);
}
private void BindToDataGrid()
{
// Instruct the DataGrid to bind to the DataSet, with the
// ParentTable as the topmost DataTable.
dataGrid1.SetDataBinding(dataSet,"ParentTable");
}
DATA SET
The
following example consists of several methods that, combined, create and fill a
T:System.Data.DataSet from the Northwind database.
using System;
using System.Data;
using System.Data.SqlClient;
namespace Microsoft.AdoNet.DataSetDemo
{
class NorthwindDataSet
{
static void Main()
{
string connectionString = GetConnectionString();
ConnectToData(connectionString);
}
private static void ConnectToData(string connectionString)
{
//Create a SqlConnection to the Northwind database.
using (SqlConnection connection =
new SqlConnection(connectionString))
{
//Create a SqlDataAdapter for the Suppliers table.
SqlDataAdapter adapter = new SqlDataAdapter();
// A table mapping names the DataTable.
adapter.TableMappings.Add("Table", "Suppliers");
// Open the connection.
connection.Open();
Console.WriteLine("The SqlConnection is open.");
// Create a SqlCommand to retrieve Suppliers data.
SqlCommand command = new SqlCommand(
"SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
connection);
command.CommandType = CommandType.Text;
// Set the SqlDataAdapter's SelectCommand.
adapter.SelectCommand = command;
// Fill the DataSet.
DataSet dataSet = new DataSet("Suppliers");
adapter.Fill(dataSet);
// Create a second Adapter and Command to get
// the Products table, a child table of Suppliers.
SqlDataAdapter productsAdapter = new SqlDataAdapter();
productsAdapter.TableMappings.Add("Table", "Products");
SqlCommand productsCommand = new SqlCommand(
"SELECT ProductID, SupplierID FROM dbo.Products;",
connection);
productsAdapter.SelectCommand = productsCommand;
// Fill the DataSet.
productsAdapter.Fill(dataSet);
// Close the connection.
connection.Close();
Console.WriteLine("The SqlConnection is closed.");
// Create a DataRelation to link the two tables
// based on the SupplierID.
DataColumn parentColumn =
dataSet.Tables["Suppliers"].Columns["SupplierID"];
DataColumn childColumn =
dataSet.Tables["Products"].Columns["SupplierID"];
DataRelation relation =
new System.Data.DataRelation("SuppliersProducts",
parentColumn, childColumn);
dataSet.Relations.Add(relation);
Console.WriteLine(
"The {0} DataRelation has been created.",
relation.RelationName);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
}
}
}
2.
Resumen
El DataTable clase es un miembro de la System.Data espacio de
nombres dentro de la biblioteca de clases de .NET Framework. Puede crear y
utilizar un DataTable por separado o como un miembro de un conjunto de datos, y
DataTable objetos también pueden utilizarse junto con otros objetos de .NET
Framework incluidas la DataView. Obtener acceso a la colección de tablas en un
conjunto de datos a través de la tablas propiedad de la conjunto de datos
objeto.
El esquema, o estructura, de una tabla se representa con columnas
y restricciones. Las columnas de una tabla se pueden asignar a columnas de un
origen de datos, pueden contener valores calculados de expresiones, aumentar
sus valores automáticamente o contener valores de clave principal.
Además del esquema, un DataTable debe tener también filas para
albergar y ordenar los datos.
El DataSet de ADO.NET es una
representación de datos residente en memoria que proporciona un modelo de
programación relacional coherente independientemente del origen de datos que
contiene. Un DataSet representa un conjunto
completo de datos, incluyendo las tablas que contienen, ordenan y restringen
los datos, así como las relaciones entre las tablas.
3.
Summary
The DataTable class is a member of
the System.Data namespace within the .NET Framework class library. You can
create and use a DataTable separately or as a member of a data set, and
DataTable objects can also be used in conjunction with other .NET Framework
objects including the DataView. Access the collection of tables in a data set
through the tables owned by the object data set.
The schema, or structure, of a
table is represented by columns and constraints. Columns in a table can be
assigned to columns in a data source, can contain calculated values of
expressions, increase their values automatically, or contain primary key
values.
In addition to the schema, a
DataTable must also have rows to host and sort the data.
The ADO.NET DataSet is a memory
resident data representation that provides a consistent relational programming
model regardless of the data source it contains. A DataSet represents a
complete set of data, including the tables that contain, order and restrict the
data, as well as the relationships between the tables.
4.
Conclusiones
o
En
un DataSet, se pueden realizar las mismas actividades
que al utilizar una tabla de una base de datos. Se
puede agregar, ver, modificar y eliminar datos en la tabla, supervisar los errores y eventos y consultar los datos de la
tabla.
o Es una representación residente en memoria de datos que
proporciona un modelo de programación relacional coherente e independiente del
origen de datos.
o El objeto DataTable proporciona una serie de eventos que una aplicación puede procesar
5.
Apreciación del equipo
o El DataSet es una copia en memoria de los datos
o El Datatable es igual que el Dataset, solo que con una sola tabla.
o Un DataSet contiene varias tablas de datos, cada una de las cuales
corresponde típicamente a una tabla o vista de la base de datos.
6.
Glosario de Términos
DATASET
En general, se denomina así, a cualquier conjunto de
datos, aunque también se le llama así al dispositivo convertidor de señal o
modulador-demodulador (módem).
Dispose():Libera
todos los recursos que usa MarshalByValueComponent.(Heredado
de MarshalByValueComponent).
Dispose(Boolean): Libera
los recursos no administrados que usa MarshalByValueComponent y
libera los recursos administrados de forma opcional.(Heredado
de MarshalByValueComponent).
EndInit():Finaliza
la inicialización de un objeto DataSet que se emplea en un formulario o que
utiliza otro componente. La inicialización se produce en tiempo de
ejecución.
DefaultViewManager: Obtiene una vista personalizada de los datos contenidos en
el DataSet para permitir filtrar,
buscar y desplazarse mediante un personalizado DataViewManager.
DesignMode: Obtiene un valor que indica si
el componente está actualmente en modo de diseño.(Heredado de MarshalByValueComponent).
EnforceConstraints: Obtiene o establece un valor que indica si se siguen las reglas
de restricción al intentar cualquier operación de actualización.
7.
Linkografia
§
https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/dataset-datatable-dataview/datatables
§
https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/dataset-datatable-dataview/datatables
§
No hay comentarios:
Publicar un comentario