La diferencia y el uso entre C#DataSet y DataTable
DataSet es un conjunto de datos, DataTable es una tabla de datos y DataSet almacena múltiples DataTables. DataSet y DataTable son como un contenedor dedicado a almacenar datos, que se pueden almacenar en él cuando consulta la base de datos para obtener algunos resultados.
DataSet tiene potentes funciones como navegación, clasificación, búsqueda, filtrado, procesamiento de datos jerárquicos, almacenamiento en caché de cambios, etc. También se puede intercambiar con datos XML. DataSet puede incluir múltiples DataTables y se pueden almacenar múltiples estructuras de consulta en un DataSet para una fácil operación. Desarrollado por desarrolladores de ADO.NET para facilitar el procesamiento de datos, es una colección de datos y está diseñado para resolver las deficiencias de los datos de DataReader. La velocidad es rápida, pero es de solo lectura. Una vez que pasa a la siguiente fila, no puede ver los datos de la fila anterior. El conjunto de datos puede mover el puntero libremente. Los datos de DataSet están desconectados de la base de datos. DataSet también se puede utilizar en aplicaciones de varios niveles. Si la aplicación se ejecuta en el objeto comercial del nivel medio para acceder a la base de datos, el objeto comercial debe pasar la estructura de datos fuera de línea a la aplicación cliente.
Tres formas de crear un DataSet:
DataTable() inicializa una nueva instancia de la clase DataTable sin parámetros.
DataTable(string tableName) Inicializa una nueva instancia de la clase DataTable con el nombre de tabla especificado.
Introducción a los atributos comunes de DataSet:
CaseSensitive indica si las comparaciones de cadenas en la tabla distinguen entre mayúsculas y minúsculas. Si distingue entre mayúsculas y minúsculas, es falso. El valor predeterminado es falso.
ChildRelations Obtiene la colección de relaciones secundarias de este DataTable.
Columnas Obtiene la colección de columnas que pertenecen a esta tabla.
Restricciones Obtiene la colección de restricciones mantenidas por esta tabla.
DataSet Obtiene el DataSet al que pertenece esta tabla. Para obtener información sobre DataSet, consulte mi artículo anterior "Acceso a datos (2) - DataSet"
DefaultView obtiene una vista personalizada de la tabla que puede incluir vistas de filtro o posiciones del cursor.
HasErrors Obtiene un valor que indica si hay errores en alguna fila de alguna tabla en el DataSet al que pertenece esta tabla.
MinimumCapacity Obtiene o establece el tamaño inicial de la tabla. El tamaño inicial inicial de las filas de esta tabla. El valor predeterminado es 50.
Filas Obtiene la colección de filas que pertenecen a esta tabla.
TableName obtiene o establece el nombre de la DataTable.
Métodos comunes de DataSet:
Clear() borra todos los datos del DataTable.
Clone() Clona la estructura de DataTable, incluidos todos los esquemas y restricciones de DataTable.
EndInit() Finaliza la inicialización de un DataTable utilizado en un formulario o utilizado por otro componente. La inicialización ocurre en tiempo de ejecución.
ImportRow(fila DataRow) Copia el DataRow en DataTable, conservando la configuración de propiedad y los valores iniciales y actuales.
Fusionar(tabla DataTable) Fusiona el DataTable especificado con el DataTable actual.
NewRow() crea un nuevo DataRow con el mismo esquema que la tabla.
AcceptChanges() confirma todos los cambios en la tabla desde la última llamada a AcceptChanges().
BeginInit() Comienza la inicialización de un DataTable usado en el formulario o usado por otro componente. La inicialización ocurre en tiempo de ejecución.
Métodos para recorrer DataSet
foreach(DataTable dt en dataSet.Tables)
foreach(DataRow dr en dt.Rows)
foreach(DataColumn dc en dr.Table.Columns)
Console.WriteLine(dr[dc]);