Einfügen neuer Datensätze in eine Datenbank in .NET Framework-Anwendungen

Der allgemeine Ansatz zum Einfügen neuer Datensätze in eine Datenbank mit ADO.NET in einem .NET Framework-Projekt besteht in der Verwendung von TableAdapter-Methoden. TableAdapters ermöglichen die Kommunikation zwischen der Anwendung und einer Datenbank. Sie bieten je nach den Anforderungen Ihrer Anwendung unterschiedliche Möglichkeiten zum Einfügen neuer Datensätze in eine Datenbank. Sie können die TableAdapter.Update-Methode oder eine der DBDirect-Methoden von TableAdapter verwenden (insbesondere die TableAdapter.Insert-Methode).

In diesem Artikel wird beschrieben, wie Sie Datensätze in eine Datenbank für eine Anwendung einfügen, die mit ADO.NET und .NET Framework unter Verwendung von Visual Basic (VB) oder C# erstellt wurde. Wenn Ihre Anwendungskonfiguration Entity Framework 6 nutzt, finden Sie weitere Informationen unter Hinzufügen einer neuen Entität zum Kontext oder im Fall von Entity Framework Core unter Hinzufügen von Daten.

Hinweis

Datasets und verwandte Klassen sind ältere .NET-Technologien aus den frühen 2000er Jahren, die es Anwendungen ermöglichen, mit Daten im Arbeitsspeicher zu arbeiten, während die Anwendungen von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Anwendungen, die es Benutzern ermöglichen, Daten zu ändern und die Änderungen wieder in der Datenbank zu speichern. Obwohl sich Datasets als sehr erfolgreiche Technologie erwiesen haben, empfehlen wir, dass neue .NET-Anwendungen Entity Framework Core verwenden. Entity Framework bietet eine natürlichere Möglichkeit, mit tabellarischen Daten als Objektmodelle zu arbeiten, und verfügt über eine einfachere Programmierschnittstelle.

Voraussetzungen

  • Um mit TableAdapter-Methoden zu arbeiten, benötigen Sie eine verfügbare Instanz. Weitere Informationen finden Sie unter Erstellen und Konfigurieren von TableAdapters in .NET Framework-Anwendungen.

  • .NET-Sicherheit: Sie müssen Zugriff auf die Datenbank haben, mit der Sie eine Verbindung herstellen möchten, und über die Berechtigung zum Ausführen von Einfügevorgängen in die gewünschte Tabelle verfügen.

Auswählen der Einfügemethode

Je nach Anwendungsszenario gibt es verschiedene Ansätze zum Einfügen von Datensätzen in eine Datenbank. Die Möglichkeiten sind in der folgenden Tabelle zusammengefasst:

Szenario Vorgehensweise Hinweise
Die App verwendet Datasets zum Speichern von Daten. Verwenden Sie die TableAdapter.Update-Methode zum Senden aller Änderungen an die Datenbank. Änderungen umfassen Aktualisierungen, Einfügungen und Löschungen.
Die App verwendet Objekte zum Speichern von Daten. Verwenden Sie die TableAdapter.Insert-Methode zum Einfügen neuer Datensätze in die Datenbank. Mit diesem Ansatz haben Sie eine bessere Kontrolle über das Erstellen neuer Datensätze.
Die App verwendet TableAdapters, die Insert-Methode ist nicht verfügbar. Legen Sie die GenerateDBDirectMethods-Eigenschaft von TableAdapter im Dataset-Designer auf true fest, und speichern Sie das Dataset, um den TableAdapter neu zu generieren. Wenn der TableAdapter nicht über eine Insert-Methode verfügt, ist der TableAdapter entweder für die Verwendung gespeicherter Prozeduren konfiguriert, oder die GenerateDBDirectMethods-Eigenschaft ist auf false festgelegt.
Wenn die Insert-Methode nach dem erneuten Generieren von TableAdapter weiterhin nicht verfügbar ist, stellt die Tabelle wahrscheinlich nicht genügend Schemainformationen bereit, um zwischen einzelnen Zeilen zu unterscheiden (möglicherweise wurde kein Primärschlüssel für die Tabelle festgelegt).
Die App verwendet keine TableAdapters. Verwenden Sie Befehlsobjekte zum Einfügen neuer Datensätze in die Datenbank. Beispiel: SqlCommand

Einfügen neuer Datensätze mithilfe von TableAdapter-Instanzen

Wenn Ihre Anwendung Datasets zum Speichern von Daten verwendet, können Sie der gewünschten DataTable neue Datensätze im Dataset hinzufügen und dann die TableAdapter.Update-Methode aufrufen. Die TableAdapter.Update-Methode sendet Änderungen an DataTable an die Datenbank, einschließlich geänderter und gelöschter Datensätze.

Einfügen neuer Datensätze mit der TableAdapter.Update-Methode

Das folgende Verfahren veranschaulicht, wie neue Datensätze mithilfe der TableAdapter.Update-Methode in eine Datenbank eingefügt werden:

  1. Fügen Sie der gewünschten DataTable neue Datensätze hinzu, indem Sie eine neue DataRow erstellen und der Rows-Auflistung hinzufügen.

  2. Nachdem Sie DataTable die neuen Zeilen hinzugefügt haben, rufen Sie die TableAdapter.Update-Methode auf. Sie können die zu aktualisierende Datenmenge steuern, indem Sie einen der folgenden Parameterwerte übergeben:

    Der folgende Code zeigt, wie Sie einer DataTable einen neuen Datensatz hinzufügen und dann die TableAdapter.Update-Methode aufrufen, um die neue Zeile in der Datenbank zu speichern. In diesem Beispiel wird die Region-Tabelle in der Northwind-Datenbank verwendet.

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

Einfügen neuer Datensätze mit der TableAdapter.Insert-Methode

Wenn Ihre Anwendung Objekte zum Speichern von Daten verwendet, können Sie die TableAdapter.Insert-Methode verwenden, um neue Zeilen direkt in der Datenbank zu erstellen. Die Insert-Methode akzeptiert die einzelnen Werte für jede Spalte als Parameter. Wenn Sie die Methode aufrufen, wird ein neuer Datensatz mit den übergebenen Parameterwerten in die Datenbank eingefügt.

  • Rufen Sie die Insert-Methode von TableAdapter auf, und übergeben Sie die Werte für jede Spalte als Parameter.

Im folgenden Verfahren wird veranschaulicht, wie die TableAdapter.Insert-Methode zum Einfügen von Zeilen verwendet wird. In diesem Beispiel werden Daten in die Region-Tabelle in der Northwind-Datenbank eingefügt.

Hinweis

Wenn Sie keine Instanz zur Verfügung haben, instanziieren Sie den TableAdapter, den Sie verwenden möchten.

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

regionTableAdapter.Insert(5, "NorthWestern");

Einfügen neuer Datensätze mit Befehlsobjekten

Sie können neue Datensätze mithilfe von Befehlsobjekten direkt in eine Datenbank einfügen.

  • Erstellen Sie ein neues Befehlsobjekt, und legen Sie dann die Eigenschaften Connection, CommandType und CommandText fest.

Das folgende Verfahren veranschaulicht, wie Datensätze mithilfe von Befehlsobjekten in eine Datenbank eingefügt werden. In diesem Beispiel werden Daten in die Region-Tabelle in der Northwind-Datenbank eingefügt.

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