Dela via


Ändra DataViews

Du kan använda DataView för att lägga till, ta bort eller ändra rader med data i den underliggande tabellen. Möjligheten att använda DataView för att ändra data i den underliggande tabellen styrs genom att en av tre booleska egenskaper för DataView anges. Dessa egenskaper är AllowNew, AllowEditoch AllowDelete. De är inställda på true som standard.

Om AllowNew är sant kan du använda AddNew datavyns metod för att skapa en ny DataRowView. Observera att en ny rad inte läggs till i den underliggande DataTable förrän EndEdit metoden för DataRowView anropas. CancelEdit Om metoden för DataRowView anropas ignoreras den nya raden. Observera också att du bara kan redigera en DataRowView i taget. Om du anropar metoden AddNew eller BeginEdit för DataRowView medan det finns en väntande rad anropas EndEdit implicit på den väntande raden. När EndEdit anropas tillämpas ändringarna på den underliggande DataTable och kan senare checkas in eller avvisas med metoderna AcceptChanges eller RejectChanges i DataTable-, DataSet- eller DataRow-objektet . Om AllowNew är falskt utlöses ett undantag om du anropar metoden AddNew i DataRowView.

Om AllowEdit är sant kan du ändra innehållet i en DataRow via DataRowView. Du kan bekräfta ändringar i den underliggande raden med Hjälp av DataRowView.EndEdit eller avvisa ändringarna med Hjälp av DataRowView.CancelEdit. Observera att endast en rad kan redigeras i taget. Om du anropar metoderna AddNew eller BeginEdit i DataRowView medan det finns en väntande rad anropas EndEdit implicit på den väntande raden. När EndEdit anropas placeras föreslagna ändringar i den aktuella radversionen av den underliggande DataRow och kan senare checkas in eller avvisas med metoderna AcceptChanges eller RejectChanges i datatabellen, datauppsättningen eller DataRow-objektet. Om AllowEdit är falskt utlöses ett undantag om du försöker ändra ett värde i DataView.

När en befintlig DataRowView redigeras genereras händelser för den underliggande DataTable fortfarande med de föreslagna ändringarna. Observera att om du anropar EndEdit eller CancelEdit på den underliggande DataRow tillämpas eller avbryts väntande ändringar oavsett om EndEdit eller CancelEdit anropas på DataRowView.

Om AllowDelete är sant kan du ta bort rader från DataView med hjälp av metoden Ta bort för DataView- eller DataRowView-objektet, och raderna tas bort från den underliggande DataTable. Du kan senare checka in eller avvisa borttagningarna med hjälp av AcceptChanges respektive RejectChanges . Om AllowDelete är falskt utlöses ett undantag om du anropar metoden Ta bort för DataView eller DataRowView.

Följande kodexempel inaktiverar användning av DataView för att ta bort rader och lägger till en ny rad i den underliggande tabellen med hjälp av 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();  

Se även