Procedura: modificare le righe in un oggetto DataTable

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 seguente la colonna CustomerID è la chiave primaria della tabella Customers. Pertanto, il metodo FindBy generato è FindByCustomerID. In questo esempio si presuppone che sia stato generato un dataset tipizzato denominato NorthwindDataSet e che esista un'istanza del dataset tipizzato denominata northwindDataSet1.

    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. Nell'esempio si presuppone che esista un dataset denominato dataSet1.

    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 seguente viene illustrata la procedura per aggiornare i dati delle colonne CompanyName e City del quinto record della tabella Customers presente nel dataset. In questo esempio si presuppone che sia stato generato un dataset tipizzato denominato NorthwindDataSet e che esista un'istanza del dataset tipizzato denominata northwindDataSet1.

    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 seguente viene illustrata la procedura per aggiornare i dati nelle prime due colonne del quinto record della prima tabella in dataSet1. In questo esempio si presuppone che la prima tabella in dataSet1 corrisponda alla tabella Customers del database Northwind e le prime due colonne di questa tabella siano le colonne CompanyName e City.

    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    dataSet1.Tables[0].Rows[4][0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4][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

Modifiche di DataTable

Aggiunta di dati a una DataTable

Eliminazione di DataRow

Associazione di controlli Windows Form ai dati in Visual Studio

Associazione di controlli ai dati in Visual Studio

Altre risorse

Connessione ai dati in Visual Studio

Preparazione dell'applicazione al ricevimento di dati

Recupero di dati nell'applicazione

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati

Cronologia delle modifiche

Data

Cronologia

Motivo

Settembre 2010

Modificato uno degli esempi di codice C# per utilizzare ItemsArray anziché Items.

Correzione di bug nel contenuto.