Procedura: inserire nuovi record in un database

Per inserire nuovi record in un database, è possibile utilizzare il metodo TableAdapter.Update oppure uno dei metodi DBDirect del TableAdapter (in modo specifico il metodo TableAdapter.Insert). Per ulteriori informazioni, vedere Cenni preliminari sugli oggetti TableAdapter.

Se nell'applicazione non sono utilizzati TableAdapter, sarà possibile utilizzare oggetti Command per interagire e inserire nuovi record nel database in uso (ad esempio, SqlCommand).

Utilizzare il metodo TableAdapter.Update quando nell'applicazione vengono utilizzati i dataset per la memorizzazione dei dati. Il metodo Update consente di inviare tutte le modifiche (aggiornamenti, inserimenti ed eliminazioni) al database.

Utilizzare il metodo TableAdapter.Insert quando nell'applicazione vengono utilizzati gli oggetti per la memorizzazione dei dati oppure se si desidera un maggiore controllo sulla creazione di nuovi record nel database.

Se nel TableAdapter non è presente un metodo Insert, il TableAdapter è stato configurato per utilizzare stored procedure oppure la relativa proprietà GenerateDBDirectMethods è impostata su false. Provare a impostare la proprietà GenerateDBDirectMethods del TableAdapter su true dalla Progettazione DataSet, quindi salvare il dataset per rigenerare il TableAdapter. Se, dopo tale procedura, nel TableAdapter non è ancora presente un metodo Insert, nella tabella non vengono fornite informazioni di schema sufficienti per distinguere tra le righe singole (ad esempio, sulla tabella non è impostata alcuna chiave primaria).

Inserimento di nuovi record mediante i TableAdapter

I TableAdapter forniscono diversi metodi per inserire nuovi record in un database a seconda dei requisiti dell'applicazione.

Se nell'applicazione sono utilizzati dataset per memorizzare i dati, è sufficiente nuovi record all'oggetto DataTable desiderato nel dataset e quindi chiamare il metodo TableAdapter.Update. Il metodo TableAdapter.Update accetta tutte le modifiche apportate all'oggetto DataTable e le invia al database (inclusi i record modificati ed eliminati).

Per inserire nuovi record in un database utilizzando il metodo TableAdapter.Update

  1. Aggiungere nuovi record all'oggetto DataTable desiderato creando un nuovo oggetto DataRow e aggiungendolo all'insieme Rows. Per ulteriori informazioni, vedere Procedura: aggiungere righe a una DataTable.

  2. Dopo l'aggiunta delle righe all'oggetto DataTable, chiamare il metodo TableAdapter.Update. È possibile controllare la quantità di dati da modificare passando un oggetto DataSet intero, un oggetto DataTable, una matrice di oggetti DataRow oppure un oggetto DataRow singolo.

    Nel codice riportato di seguito viene illustrato come aggiungere un nuovo record a un oggetto DataTable e quindi chiamare il metodo TableAdapter.Update per salvare la nuova riga nel database. In questo esempio viene utilizzata la tabella Region del database Northwind.

    ' Create a new row.
    Dim newRegionRow As NorthwindDataSet.RegionRow
    newRegionRow = Me.NorthwindDataSet._Region.NewRegionRow()
    newRegionRow.RegionID = 5
    newRegionRow.RegionDescription = "NorthWestern"
    
    ' Add the row to the Region table
    Me.NorthwindDataSet._Region.Rows.Add(newRegionRow)
    
    ' Save the new row to the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Se nell'applicazione sono utilizzati oggetti per la memorizzazione dei dati, è possibile utilizzare il metodo TableAdapter.Insert per creare nuove righe direttamente nel database. Il metodo Insert accetta i valori singoli per ciascuna colonna come parametri. La chiamata al metodo consente di inserire un nuovo record nel database con i valori di parametro passati.

Nella procedura riportata di seguito viene utilizzata come esempio la tabella Region del database Northwind.

Per inserire nuovi record in un database utilizzando il metodo TableAdapter.Insert

  • Chiamare il metodo Insert del TableAdapter passando i valori per ciascuna colonna come parametri.

    Nota

    Se non è disponibile alcuna istanza, creare un'istanza del TableAdapter da utilizzare.

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Insert(5, "NorthWestern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Insert(5, "NorthWestern");
    

Inserimento di nuovi record mediante oggetti Command

Nell'esempio riportato di seguito vengono inseriti nuovi record direttamente in un database utilizzando oggetti Command. Per ulteriori informazioni sull'utilizzo di oggetti Command per eseguire comandi e stored procedure, vedere Recupero di dati nell'applicazione.

Nella procedura riportata di seguito viene utilizzata come esempio la tabella Region del database Northwind.

Per inserire i nuovi record in un database utilizzando oggetti Command

  • Creare un nuovo oggetto Command e impostarne le proprietà Connection, CommandType e CommandText.

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

Sicurezza

È necessario disporre di un accesso al database a cui si tenta di connettersi e dell'autorizzazione a eseguire l'inserimento nella tabella desiderata.

Vedere anche

Attività

Procedura: eliminare record da un database

Procedura: aggiornare record in un database

Procedura: salvare dati da un oggetto in un database

Concetti

Associazione di controlli ai dati in Visual Studio

Recupero dei valori Identity o Autonumber (ADO.NET)

Altre risorse

Cenni preliminari sulle applicazioni dati in Visual Studio

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