Compartir a través de


Administrar DataViews (ADO.NET)

Puede utilizar un DataViewManager para administrar la configuración de vista para todas las tablas de un DataView. Si tiene un control que desea enlazar a varias tablas, como una cuadrícula que navega por relaciones, es ideal utilizar un DataViewManager.

El DataViewManager contiene una colección de objetos DataViewSetting que se utilizan para establecer la configuración de vista de las tablas del DataSet. La DataViewSettingCollection contiene un objeto DataViewSetting para cada tabla de un DataSet. Puede establecer las propiedades ApplyDefaultSort, Sort, RowFilter y RowStateFilter predeterminadas de la tabla a la que se hace referencia mediante su DataViewSetting. Puede hacer referencia al DataViewSetting de una tabla determinada por su nombre o por su referencia ordinal, o si pasa una referencia a dicho objeto de tabla. Puede tener acceso a la colección de objetos DataViewSetting de un DataViewManager mediante la propiedad DataViewSettings.

En el siguiente código de ejemplo se rellena un DataSet con las tablas Customers, Orders y Order Details de la base de datos Northwind de SQL Server, se crean las relaciones entre las tablas, se utiliza un DataViewManager para establecer la configuración predeterminada de DataView y se enlaza una DataGrid al DataViewManager. En el ejemplo se establece la configuración predeterminada de DataView para todas las tablas del DataSet de manera que se ordene según la clave principal de la tabla (ApplyDefaultSort = true) y se modifica el criterio de ordenación de la tabla Customers para que se ordene por CompanyName.

' Assumes connection is a valid SqlConnection to Northwind.
' Create a Connection, DataAdapters, and a DataSet.
Dim custDA As SqlDataAdapter = New SqlDataAdapter( _
  "SELECT CustomerID, CompanyName FROM Customers", connection)
Dim orderDA As SqlDataAdapter = New SqlDataAdapter( _
  "SELECT OrderID, CustomerID FROM Orders", connection)
Dim ordDetDA As SqlDataAdapter = New SqlDataAdapter( _
  "SELECT OrderID, ProductID, Quantity FROM [Order Details]", connection)

Dim custDS As DataSet = New DataSet()

' Open the Connection.
connection.Open()

    ' Fill the DataSet with schema information and data.
    custDA.MissingSchemaAction = MissingSchemaAction.AddWithKey
    orderDA.MissingSchemaAction = MissingSchemaAction.AddWithKey
    ordDetDA.MissingSchemaAction = MissingSchemaAction.AddWithKey

    custDA.Fill(custDS, "Customers")
    orderDA.Fill(custDS, "Orders")
    ordDetDA.Fill(custDS, "OrderDetails")

    ' Close the Connection.
    connection.Close()

    ' Create relationships.
    custDS.Relations.Add("CustomerOrders", _
          custDS.Tables("Customers").Columns("CustomerID"), _
          custDS.Tables("Orders").Columns("CustomerID"))

    custDS.Relations.Add("OrderDetails", _
          custDS.Tables("Orders").Columns("OrderID"), _
          custDS.Tables("OrderDetails").Columns("OrderID"))

' Create default DataView settings.
Dim viewManager As DataViewManager = New DataViewManager(custDS)

Dim viewSetting As DataViewSetting
For Each viewSetting In viewManager.DataViewSettings
  viewSetting.ApplyDefaultSort = True
Next

viewManager.DataViewSettings("Customers").Sort = "CompanyName"

' Bind to a DataGrid.
Dim grid As System.Windows.Forms.DataGrid = New System.Windows.Forms.DataGrid()
grid.SetDataBinding(viewManager, "Customers")
// Assumes connection is a valid SqlConnection to Northwind.
// Create a Connection, DataAdapters, and a DataSet.
SqlDataAdapter custDA = new SqlDataAdapter(
  "SELECT CustomerID, CompanyName FROM Customers", connection);
SqlDataAdapter orderDA = new SqlDataAdapter(
  "SELECT OrderID, CustomerID FROM Orders", connection);
SqlDataAdapter ordDetDA = new SqlDataAdapter(
  "SELECT OrderID, ProductID, Quantity FROM [Order Details]", connection);

DataSet custDS = new DataSet();

// Open the Connection.
connection.Open();

    // Fill the DataSet with schema information and data.
    custDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    orderDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    ordDetDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;

    custDA.Fill(custDS, "Customers");
    orderDA.Fill(custDS, "Orders");
    ordDetDA.Fill(custDS, "OrderDetails");

    // Close the Connection.
    connection.Close();

    // Create relationships.
    custDS.Relations.Add("CustomerOrders",
          custDS.Tables["Customers"].Columns["CustomerID"],
          custDS.Tables["Orders"].Columns["CustomerID"]);

    custDS.Relations.Add("OrderDetails",
          custDS.Tables["Orders"].Columns["OrderID"],
          custDS.Tables["OrderDetails"].Columns["OrderID"]);

// Create default DataView settings.
DataViewManager viewManager = new DataViewManager(custDS);

foreach (DataViewSetting viewSetting in viewManager.DataViewSettings)
  viewSetting.ApplyDefaultSort = true;

viewManager.DataViewSettings["Customers"].Sort = "CompanyName";

// Bind to a DataGrid.
System.Windows.Forms.DataGrid grid = new System.Windows.Forms.DataGrid();
grid.SetDataBinding(viewManager, "Customers");

Vea también

Referencia

DataSet

DataViewManager

DataViewSetting

DataViewSettingCollection

Otros recursos

DataViews (ADO.NET)