Inserire nuovi record in un database nelle applicazioni .NET Framework

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. 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.

Per inserire nuovi record in un database con ADO.NET in un progetto .NET Framework, è possibile usare il TableAdapter.Update metodo o uno dei metodi DBDirect di TableAdapter ,in particolare il TableAdapter.Insert metodo . Per altre informazioni, vedere TableAdapter.

Se l'applicazione non usa TableAdapters, è possibile usare oggetti comando (ad esempio , SqlCommand) per inserire nuovi record nel database.

Se l'applicazione usa set di dati per archiviare i dati, usare il TableAdapter.Update metodo . Il Update metodo invia tutte le modifiche (aggiornamenti, inserimenti ed eliminazioni) al database.

Se l'applicazione usa oggetti per archiviare i dati o se si vuole un controllo più corretto sulla creazione di nuovi record nel database, usare il TableAdapter.Insert metodo .

Se tableAdapter non dispone di un Insert metodo, significa che TableAdapter è configurato per l'uso di stored procedure oppure la relativa GenerateDBDirectMethods proprietà è impostata su false. Provare a impostare la proprietà true di TableAdapter su dall'interno di GenerateDBDirectMethodsProgettazione set di dati e quindi salvare il set di dati. Questa azione rigenera l'oggetto TableAdapter. Se TableAdapter non dispone ancora di un Insert metodo, 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).

Nota

Questo articolo si applica allo sviluppo di ADO.NET e .NET Framework. Per la stessa attività con Entity Framework 6, vedere Aggiunta di una nuova entità al contesto. Per Entity Framework Core, vedere Aggiunta di dati.

Inserire nuovi record usando TableAdapters

Gli oggetti TableAdapter offrono modi diversi per inserire nuovi record in un database, a seconda dei requisiti dell'applicazione.

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.

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

  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 un intero DataSetoggetto , una DataTablematrice di DataRowo un singolo DataRowoggetto .

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

Per inserire nuovi record in un database utilizzando 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. La chiamata al metodo inserisce un nuovo record nel database con i valori dei parametri passati.

  • Chiamare il metodo TableAdapter Insert , passando i valori per ogni colonna come parametri.

La procedura seguente illustra l'utilizzo del 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 da usare.

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

regionTableAdapter.Insert(5, "NorthWestern");

Inserire nuovi record usando oggetti comando

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

Per inserire nuovi record in un database utilizzando oggetti comando

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

Nell'esempio seguente viene illustrato l'inserimento di record in un database tramite l'oggetto comando . Inserisce i 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();

Protezione .NET

È necessario avere accesso al database a cui si sta tentando di connettersi e l'autorizzazione per eseguire inserimenti nella tabella desiderata.