Cree ADO.NET DataView mostrando solo las columnas seleccionadas
-
05-07-2019 - |
Pregunta
En C # & amp; .NET, se puede crear un DataView
que incluya solo un subconjunto correcto de la DataColumn
de un DataTable
dado ?
En términos de álgebra relacional, uno asigna un RowFilter
para realizar una selección " " funcionamiento (s). ¿Cómo se realizaría una " proyección " operación (p)?
Solución
No puede hacer eso, pero puede crear una copia de la tabla solo con las columnas que desee:
DataView view = new DataView(table);
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn");
Opcionalmente, puede devolver filas que tengan valores distintos para las columnas seleccionadas:
DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
Otros consejos
Bueno, no puedo ver ninguna razón para " querer " para hacer eso ... Recuerde, un DataView es solo una lista de punteros a las filas en la tabla original, y obviamente no hay manera de eliminar columnas de la tabla original ... al menos no sin afectar a todas las demás funciones que utilizan esa tabla ... Solo usa las columnas que quieras ...
cree la vista de datos como un intercambio de una tabla a otra, y use el dtswap como fuente de datos.
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
DataSet
y sus tipos asociados no tienen capacidad para realizar operaciones relacionales.