Partager via


Modification de DataViews

Vous pouvez utiliser l’option DataView pour ajouter, supprimer ou modifier des lignes de données dans la table sous-jacente. La possibilité d’utiliser la DataView pour modifier des données dans la table sous-jacente est contrôlée en définissant l’une des trois propriétés booléennes de DataView. Ces propriétés sont AllowNew, AllowEdit et AllowDelete. Elles sont définies true par défaut.

Si AllowNew est vrai, vous pouvez utiliser la AddNew méthode du DataView pour créer un nouveau DataRowView. Notez qu’une nouvelle ligne n’est pas réellement ajoutée au sous-jacent DataTable tant que la méthode EndEdit de DataRowView n’est pas appelée. Si la méthode CancelEdit de DataRowView est appelée, la nouvelle ligne est ignorée. Notez également que vous ne pouvez en modifier qu’un à la DataRowView fois. Si vous appelez la méthode AddNew ou BeginEdit de DataRowView alors qu'une ligne en attente existe, EndEdit est implicitement appelée sur la ligne en attente. Quand EndEdit est appelé, les modifications sont appliquées à l’DataTable sous-jacent et peuvent être validées ou rejetées ultérieurement à l’aide des méthodes AcceptChanges ou RejectChanges de l’objet DataTable, DataSet, ou DataRow. Si AllowNew est false, une exception est levée si vous appelez AddNew méthode de DataRowView.

Si AllowEditc’est vrai, vous pouvez modifier le contenu d’un DataRow via DataRowView. Vous pouvez confirmer les modifications apportées à la ligne sous-jacente à l’aide de DataRowView.EndEdit ou rejeter les modifications à l’aide de DataRowView.CancelEdit. Notez qu’une seule ligne peut être modifiée à la fois. Si vous appelez les méthodes AddNew ou BeginEdit de DataRowView lorsqu'une ligne en attente est présente, EndEdit est implicitement appelée sur la ligne en attente. Lorsque EndEdit est appelé, les modifications proposées sont placées dans la Current version de ligne de l'DataRow sous-jacent et peuvent être validées ou rejetées ultérieurement en utilisant les méthodes AcceptChanges ou RejectChanges de DataTable, DataSet, ou de l'objet DataRow. Si AllowEdit est false, une exception est levée si vous tentez de modifier une valeur dans DataView.

Lorsqu’un élément existant DataRowView est en cours de modification, les événements du sous-jacent DataTable sont toujours déclenchés avec les modifications proposées. Notez que si vous appelez EndEdit ou CancelEdit sur dataRow sous-jacent, les modifications en attente seront appliquées ou annulées, qu’elles soient appelées ou non EndEditCancelEdit sur DataRowView.

Si AllowDelete est true, vous pouvez supprimer des lignes de l'objet DataView en utilisant la méthode Delete de l'objet DataView ou de l'objet DataRowView, et les lignes sont supprimées du DataTable sous-jacent. Vous pouvez valider ou rejeter ultérieurement les suppressions à l’aide AcceptChanges ou RejectChanges respectivement. Si AllowDelete est false, une exception est levée si vous appelez la méthode Delete de DataView ou de DataRowView.

L'exemple de code suivant désactive l'utilisation de DataView pour supprimer des lignes et ajoute une nouvelle ligne à la table sous-jacente à l'aide de DataView.

Dim custTable As DataTable = custDS.Tables("Customers")
Dim custView As DataView = custTable.DefaultView
custView.Sort = "CompanyName"

custView.AllowDelete = False

Dim newDRV As DataRowView = custView.AddNew()
newDRV("CustomerID") = "ABCDE"
newDRV("CompanyName") = "ABC Products"
newDRV.EndEdit()
DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";

custView.AllowDelete = false;

DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();

Voir aussi