Data set
El DataSet de ADO.NET es una representación de datos residente en memoria que provee un modelo de programación relacional consistente e independiente al 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.
Ejemplo:
En este
ejemplo se utiliza DataAdapter
para consultar en la base de datos AdventureWorks la información de ventas del
año 2002, y cargar los resultados en un DataSet.
Una vez que se ha rellenado DataSet,
se pueden escribir consultas en to DataSet. En este ejemplo, se utiliza el
método FillDataSet
SINTAXIS:
using System;
using
System.Linq;
using
System.Linq.Expressions;
using
System.Collections.Generic;
using
System.Data;
using
System.Data.SqlClient;
using
System.Data.Common;
using System.Globalization; data set
Al obtener acceso a los objetos DataTable, hay que
tener en cuenta que éstos distinguen entre mayúsculas y minúsculas
condicionalmente. Por ejemplo, si un objeto DataTable se denomina
"mydatatable" y otro "Mydatatable", la cadena que se
utilice para buscar una de las tablas se considerará que distingue entre
mayúsculas y minúsculas. Sin embargo, si existe "mydatatable" pero no
existe "Mydatatable", se considerará que la cadena de búsqueda no
distingue entre mayúsculas y minúsculas. Un objeto DataSet puede
contener dos objetos DataTable que tengan el mismo valor para la
propiedad TableName
y distintos valores para la propiedad Namespace.
Para obtener más información sobre el trabajo con los objetos DataTable,
vea Crear
DataTable.
Ejemplo:
En el ejemplo siguiente 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.
Data adapter
El uso
de DataAdapter es para
recuperar la totalidad de un conjunto de comandos de datos en sql server. Esta
clase no puede heredarse lleva tiempo,
en especial si la tabla incluye un gran número de filas.
Esto se debe a que el acceso a la base de datos, la localización y el
procesamiento de los datos, y la posterior transferencia de los mismos al
cliente son procesos largos.
La extracción de la tabla completa al cliente también bloquea todas las filas
en el servidor.
Para mejorar el rendimiento, puede usar la cláusula WHERE para reducir en gran medida el número de filas que se
devuelven al cliente.
También puede reducir la cantidad de datos que se devuelven al cliente si
enumera de forma explícita las columnas necesarias en la instrucción SELECT.
Otra solución consiste en recuperar las filas por lotes (por ejemplo varios
cientos de filas de una vez) y recuperar solo el siguiente lote cuando el
cliente haya finalizado con el lote actual
Ejemplo:
SINTAXIS:
// Assumes that connection is a valid SqlConnection object.
string queryString
=
"SELECT
CustomerID, CompanyName FROM dbo.Customers";
SqlDataAdapter
adapter = new SqlDataAdapter(queryString,
connection);
DataSet
customers = new DataSet()
adapter.Fill(customers,
"Customers");
Data grid view
Ejemplo:
En el
siguiente ejemplo vamos a ver cómo podemos validar que el valor de una columna
de un DataGridView sea de tipo fecha (en nuestro
ejemplo, la primera columna).
Cuando
validamos un DataGridView podemos elegir entre:
- Validarlo a medida que el usuario introduce datos (celda a celda)
- Validarlo al final de la introducción de datos en varias celdas
En este caso
vamos a implementar una solución para el primer caso, ya que si el número de
datos introducidos en el DataGridView es muy alto, puede resultar muy
complicado realizar la validación al final pudiendo haber introducido el
usuario muchos datos.
Para ello
usaremos el siguiente método ya comentado en otro artículo que nos valida si un
dato es de tipo fecha o no:
SINTAXIS:
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComplexBindingPropertiesAttribute("DataSource", "DataMember")]
[DockingAttribute(DockingBehavior.Ask)]
public class DataGridView : Control,
ISupportInitialize
25/01/2018
No hay comentarios:
Publicar un comentario