Partager via


Définition de la vue par défaut d'une table à l'aide d'un DataViewManager

Vous pouvez utiliser un DataViewManager pour gérer les paramètres de vue pour toutes les tables d'un DataSet. Si vous disposez d'un contrôle que vous souhaitez lier à plusieurs tables, comme une grille qui parcourt des relations, un DataViewManager est idéal.

Le DataViewManager contient une collection d'objets DataViewSetting qui servent à définir les paramètres de vue des tables du DataSet. Le DataViewSettingCollection contient un objet DataViewSetting pour chaque table d'un DataSet. Vous pouvez définir les propriétés par défaut ApplyDefaultSort, Sort, RowFilter et RowStateFilter de la table référencée en utilisant son DataViewSetting. Vous pouvez faire référence au DataViewSetting d'une table particulière par nom ou référence ordinale, ou en passant une référence à cet objet de table spécifique. Vous pouvez accéder à la collection d'objets DataViewSetting d'un DataViewManager via la propriété DataViewSettings.

L'exemple de code suivant remplit un DataSet à l'aide des tables Customers, Orders et Order Details de la base de données Microsoft SQL Server 7.0 Northwind, crée les relations entre les tables, utilise un DataViewManager pour définir les paramètres par défaut du DataView, puis lie un DataGrid au DataViewManager. L'exemple définit les paramètres par défaut du DataView pour toutes les tables du DataSet en vue d'un tri sur la clé primaire de la table (ApplyDefaultSort = true), puis modifie l'ordre de tri de la table Customers pour que le tri s'effectue en fonction de CompanyName.

' Create a Connection, DataAdapters, and a DataSet.
Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

Dim custDA As SqlDataAdapter = New SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", nwindConn)
Dim orderDA As SqlDataAdapter = New SqlDataAdapter("SELECT OrderID, CustomerID FROM Orders", nwindConn)
Dim ordDetDA As SqlDataAdapter = New SqlDataAdapter("SELECT OrderID, ProductID, Quantity FROM [Order Details]", nwindConn)

Dim custDS As DataSet = New DataSet()

' Open the Connection.
nwindConn.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.
    nwindConn.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 myDVM As DataViewManager = New DataViewManager(custDS)

Dim myDVS As DataViewSetting

For Each myDVS In myDVM.DataViewSettings
  myDVS.ApplyDefaultSort = True
Next

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

' Bind to a DataGrid.
Dim myGrid As System.Windows.Forms.DataGrid = New System.Windows.Forms.DataGrid()
myGrid.SetDataBinding(myDVM, "Customers")
[C#]
// Create a Connection, DataAdapters, and a DataSet.
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

SqlDataAdapter custDA = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", nwindConn);
SqlDataAdapter orderDA = new SqlDataAdapter("SELECT OrderID, CustomerID FROM Orders", nwindConn);
SqlDataAdapter ordDetDA = new SqlDataAdapter("SELECT OrderID, ProductID, Quantity FROM [Order Details]", nwindConn);

DataSet custDS = new DataSet();

// Open the Connection.
nwindConn.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.
    nwindConn.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 myDVM = new DataViewManager(custDS);

foreach (DataViewSetting myDVS in myDVM.DataViewSettings)
  myDVS.ApplyDefaultSort = true;

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

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

Voir aussi

Création et utilisation de DataViews | DataSet, classe | DataViewManager | DataViewSetting, classe | DataViewSettingCollection, classe