Procedura: eliminare record da un database
Aggiornamento: novembre 2007
Per eliminare i record da un database, utilizzare il metodo TableAdapter.Update oppure il metodo TableAdapter.Delete. In alternativa, se nell'applicazione non sono utilizzati TableAdapter, è possibile utilizzare oggetti Command di un database (ad esempio, ExecuteNonQuery).
In genere, il metodo TableAdapter.Update è utilizzato quando i dati vengono memorizzati nell'applicazione mediante i dataset, mentre il metodo TableAdapter.Delete è utilizzato quando i dati vengono memorizzati nell'applicazione mediante gli oggetti.
Se nel TableAdapter in uso non è presente un metodo Delete, 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 Delete, nella tabella non vengono fornite informazioni di schema sufficienti per distinguere tra le righe singole (ad esempio, sulla tabella non è impostata alcuna chiave primaria).
Eliminazione dei record mediante i TableAdapter
Nei TableAdapters sono forniti vari metodi per eliminare i record da un database a seconda dei requisiti dell'applicazione.
Se nell'applicazione sono utilizzati dataset per memorizzare i dati, è possibile eliminare in modo semplice i record dall'oggetto DataTable desiderato nell'oggetto DataSete quindi chiamare il metodo TableAdapter.Update. Il metodo TableAdapter.Update accetta tutte le modifiche apportate alla tabella dati e le invia al database (inclusi i record inseriti, aggiornati ed eliminati).
Per eliminare i record da un database utilizzando il metodo TableAdapter.Update
Eliminare i record dall'oggetto DataTable desiderato eliminando gli oggetti DataRow dalla tabella. Per ulteriori informazioni, vedere Procedura: eliminare righe in un oggetto DataTable. Dopo l'eliminazione delle righe dall'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 eliminare un record da un oggetto DataTable e chiamare il metodo TableAdapter.Update per comunicare le modifiche ed eliminare la riga dal database. In questo esempio viene utilizzata la tabella Region del database Northwind.
' Locate the row to delete. Dim oldRegionRow As NorthwindDataSet.RegionRow oldRegionRow = NorthwindDataSet._Region.FindByRegionID(5) ' Delete the row from the dataset oldRegionRow.Delete() ' Delete the row from the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
// Locate the row to delete. NorthwindDataSet.RegionRow oldRegionRow; oldRegionRow = northwindDataSet.Region.FindByRegionID(5); // Delete the row from the dataset oldRegionRow.Delete(); // Delete the row from the database this.regionTableAdapter.Update(this.northwindDataSet.Region);
Se nell'applicazione vengono utilizzati gli oggetti per la memorizzazione dei dati, per eliminare i dati direttamente dal database è possibile utilizzare i metodi DBDirect del TableAdapter. La chiamata al metodo Delete consente di rimuovere i record dal database in base ai valori di parametro passati.
Per eliminare i record da un database utilizzando il metodo TableAdapter.Update
Chiamare il metodo Delete del TableAdapter passando i valori per ciascuna colonna come parametri del metodo Delete. In questo esempio viene utilizzata la tabella Region del database Northwind.
Nota: Se non è disponibile alcuna istanza, creare un'istanza del TableAdapter da utilizzare.
Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Delete(5, "NorthWestern")
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter(); regionTableAdapter.Delete(5, "NorthWestern");
Eliminazione di record mediante oggetti Command
Nell'esempio riportato di seguito vengono eliminati i record direttamente da 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.
Per eliminare i record da un database utilizzando oggetti Command
Creare un nuovo oggetto Command e impostarne le proprietà Connection, CommandType e CommandText. In questo esempio viene utilizzata la tabella Region del database Northwind.
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 = "DELETE Region WHERE RegionID = 5 AND RegionDescription = '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 = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'"; cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close();
Sicurezza
È necessario disporre di accesso al database a cui si tenta di connettersi e dell'autorizzazione all'eliminazione dei record dalla tabella desiderata.
Vedere anche
Attività
Procedura: inserire nuovi record in un database
Procedura: aggiornare record in un database
Procedura: salvare dati da un oggetto in un database
Concetti
Cenni preliminari sugli oggetti TableAdapter
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