Procedura: inserire nuovi record in un database
Aggiornamento: novembre 2007
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
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.
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
Altre risorse
Guida introduttiva all'accesso ai dati
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