Inserire nuovi record in un database nelle applicazioni .NET Framework

Per inserire nuovi record in un database con ADO.NET in un progetto .NET Framework, l'approccio comune consiste nell'usare i metodi TableAdapter . Gli oggetti TableAdapter consentono la comunicazione tra l'applicazione e il database. Offrono diversi modi per inserire nuovi record in un database, a seconda dei requisiti dell'applicazione. È possibile utilizzare il TableAdapter.Update metodo o uno dei metodi DBDirect TableAdapter , in particolare il TableAdapter.Insert metodo .

Questo articolo descrive come inserire record in un database per un'applicazione compilata con ADO.NET e .NET Framework usando Visual Basic (VB) o C#. Se la configurazione dell'applicazione usa Entity Framework 6, vedere Aggiunta di una nuova entità al contesto o per Entity Framework Core, vedere Aggiunta di dati.

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Le tecnologie sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

Prerequisiti

  • Per usare i metodi TableAdapter, è necessario disporre di un'istanza disponibile. Per altre informazioni, vedere Creare e configurare TableAdapter nelle applicazioni .NET Framework.

  • Sicurezza .NET: è necessario avere accesso al database a cui si sta tentando di connettersi e l'autorizzazione per eseguire inserimenti nella tabella desiderata.

Scegliere il metodo di inserimento

Esistono diversi approcci per l'inserimento di record in un database basato sullo scenario dell'applicazione. La tabella seguente riepiloga le opzioni:

Scenario Approccio Note
L'app usa set di dati per archiviare i dati Utilizzare il metodo TableAdapter.Update per inviare tutte le modifiche al database Le modifiche includono aggiornamenti, inserimenti ed eliminazioni.
L'app usa oggetti per archiviare i dati Utilizzare il metodo TableAdapter.Insert per inserire nuovi record nel database Questo approccio consente di avere un controllo più efficace sulla creazione di nuovi record.
L'app usa TableAdapters, Insert metodo non disponibile Impostare la proprietà TableAdapter GenerateDBDirectMethods su true da Progettazione set di dati e salvare il set di dati per rigenerare TableAdapter Se tableAdapter non dispone di un Insert metodo, TableAdapter è configurato per l'utilizzo di stored procedure oppure la GenerateDBDirectMethods proprietà è impostata su false.
Se il Insert metodo rimane non disponibile dopo la rigenerazione di TableAdapter, la tabella probabilmente non fornisce informazioni sullo schema sufficienti per distinguere tra singole righe( ad esempio, potrebbe non essere impostata alcuna chiave primaria nella tabella).
L'app non usa TableAdapters Usare gli oggetti comando per inserire nuovi record nel database Esempio: SqlCommand

Inserire nuovi record usando TableAdapters

Se l'applicazione usa set di dati per archiviare i dati, è possibile aggiungere nuovi record al set di dati desiderato DataTable nel set di dati e quindi chiamare il TableAdapter.Update metodo . Il TableAdapter.Update metodo invia tutte le modifiche nel DataTable database, inclusi i record modificati ed eliminati.

Inserire nuovi record con il metodo TableAdapter.Update

La procedura seguente illustra come inserire nuovi record in un database usando il TableAdapter.Update metodo :

  1. Aggiungere nuovi record all'oggetto desiderato DataTable creando un nuovo DataRow oggetto e aggiungendolo alla Rows raccolta.

  2. Dopo aver aggiunto le nuove righe a DataTable, chiamare il TableAdapter.Update metodo . È possibile controllare la quantità di dati da aggiornare passando uno dei valori dei parametri seguenti:

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

    // 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);
    

Inserire nuovi record con il metodo TableAdapter.Insert

Se l'applicazione usa oggetti per archiviare i dati, è possibile usare il TableAdapter.Insert metodo per creare nuove righe direttamente nel database. Il Insert metodo accetta i singoli valori per ogni colonna come parametri. Quando si chiama il metodo , viene inserito un nuovo record nel database con i valori dei parametri passati.

  • Chiamare il metodo TableAdapter Insert e passare i valori per ogni colonna come parametri.

Nella procedura seguente viene illustrato come utilizzare il TableAdapter.Insert metodo per inserire righe. In questo esempio vengono inseriti dati nella Region tabella nel database Northwind.

Nota

Se non si dispone di un'istanza disponibile, creare un'istanza di TableAdapter che si vuole usare.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Inserire nuovi record con oggetti comando

È possibile inserire nuovi record direttamente in un database usando oggetti comando.

  • Creare un nuovo oggetto comando e quindi impostarne Connectionle proprietà , CommandTypee CommandText .

La procedura seguente illustra come inserire record in un database utilizzando l'oggetto comando . In questo esempio vengono inseriti dati nella Region tabella nel database Northwind.

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();