Procedura: modificare le righe in un oggetto DataTable
Aggiornamento: novembre 2007
Per modificare una riga esistente in una DataTable, è necessario individuare l'elemento DataRow da sottoporre a modifica, quindi assegnare i valori aggiornati alle colonne desiderate.
Negli esempi seguenti viene illustrato come individuare e modificare le righe di dataset tipizzati e non tipizzati.
Modifica di un record in un oggetto DataTable quando non si conosce l'indice della riga da modificare
Generalmente l'indice della riga che si desidera modificare non è noto. Le tabelle dati dei dataset tipizzati vengono create con un metodo FindBy che utilizza la chiave primaria della tabella per l'individuazione delle righe.
Per aggiornare i record esistenti in dataset tipizzati (indice di riga sconosciuto)
Assegnare una DataRow specifica a una variabile attraverso il metodo FindBy generato, quindi utilizzare tale variabile per accedere alle colonne da modificare e assegnare loro nuovi valori.
Nell'esempio che segue la colonna CustomerID è la chiave primaria della tabella Customers. Pertanto, il metodo FindBy generato è FindByCustomerID.
Dim customersRow As NorthwindDataSet.CustomersRow customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI") customersRow.CompanyName = "Updated Company Name" customersRow.City = "Seattle"
NorthwindDataSet.CustomersRow customersRow = northwindDataSet1.Customers.FindByCustomerID("ALFKI"); customersRow.CompanyName = "Updated Company Name"; customersRow.City = "Seattle";;
Generalmente l'indice della riga che si desidera modificare non è noto. Le tabelle dati nei dataset non tipizzati vengono create con un metodo Select che restituisce una matrice di DataRow.
Per aggiornare i record esistenti in dataset non tipizzati (indice di riga sconosciuto)
Utilizzare il metodo Select della DataTable per individuare una riga specifica e assegnare nuovi valori alle colonne desiderate.
Nell'esempio che segue la colonna CustomerID è la chiave primaria della tabella Customers. Pertanto, la chiamata del metodo Select e la ricerca della chiave primaria determineranno solo l'individuazione di una riga. Poiché il tipo restituito è comunque una matrice di DataRow, verrà effettuato l'accesso all'indice (0), o prima riga, della matrice.
Dim customerRow() As Data.DataRow customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'") customerRow(0)("CompanyName") = "Updated Company Name" customerRow(0)("City") = "Seattle"
DataRow[] customerRow = dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'"); customerRow[0]["CompanyName"] = "Updated Company Name"; customerRow[0]["City"] = "Seattle";
Modifica di un record in un oggetto DataTable quando si conosce l'indice della riga da modificare
Per aggiornare i record esistenti mediante dataset tipizzati (indice di riga noto)
Assegnare un valore a una determinata colonna all'interno di un oggetto DataRow.
I dataset tipizzati utilizzano l'associazione anticipata, che espone i nomi di tabella e di colonna come proprietà in fase di progettazione, il che semplifica le operazioni di lettura e scrittura del codice.
Nell'esempio riportato di seguito viene illustrata la procedura per aggiornare i dati delle colonne CompanyName e City del quinto record della tabella Customers presente nel dataset:
NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name" NorthwindDataSet1.Customers(4).City = "Seattle"
northwindDataSet1.Customers[4].CompanyName = "Updated Company Name"; northwindDataSet1.Customers[4].City = "Seattle";
Per aggiornare i record esistenti in dataset non tipizzati (indice di riga noto)
Assegnare un valore a una determinata colonna all'interno di un oggetto DataRow.
I nomi di tabella e di colonna dei dataset non tipizzati non sono disponibili in fase di progettazione ed è necessario accedervi attraverso i rispettivi indici.
Nell'esempio che segue viene illustrata la procedura per aggiornare i dati nelle prime due colonne del quinto record della prima tabella di Dataset1, mediante l'accesso ai valori dei dati con gli indici degli insiemi di tabelle, righe ed elementi (colonne).
DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name" DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
dataSet1.Tables[0].Rows[4].ItemArray[0] = "Updated Company Name"; dataSet1.Tables[0].Rows[4].ItemArray[1] = "Seattle";
Nell'esempio che segue viene illustrata la procedura per aggiornare gli stessi dati dell'esempio precedente, sostituendo gli indici degli insiemi con nomi di tabelle e di colonne passati come stringhe. È comunque necessario conoscere l'indice della riga da modificare:
DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name" DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name"; dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
Vedere anche
Concetti
Aggiunta di dati a una DataTable
Cenni preliminari sulla visualizzazione dei dati
Altre risorse
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows