Freigeben über


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

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

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 mithilfe von Visual Basic (VB) oder C# erstellt wurde. Wenn Ihre Anwendungskonfiguration Entity Framework 6 verwendet, lesen Sie das Hinzufügen einer neuen Entität zum Kontext, oder für Entity Framework Core siehe Hinzufügen von Daten.

Hinweis

Die DataSet Klassen und verwandten Klassen sind ältere .NET Framework-Technologien aus den frühen 2000er Jahren, mit denen Anwendungen mit Daten im Arbeitsspeicher arbeiten können, während die Apps von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Apps, mit denen Benutzer Daten ändern und die Änderungen wieder in der Datenbank speichern können. Obwohl Datasets eine bewährte erfolgreiche Technologie sind, ist der empfohlene Ansatz für neue .NET-Anwendungen die Verwendung von Entity Framework Core. Entity Framework bietet eine natürlichere Möglichkeit zum Arbeiten mit tabellarischen Daten als Objektmodelle und verfügt über eine einfachere Programmierschnittstelle.

Voraussetzungen

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

  • .NET-Sicherheit: Sie benötigen Zugriff auf die Datenbank, mit der Sie eine Verbindung herstellen möchten, und die Berechtigung zum Ausführen von Einfügungen in die gewünschte Tabelle.

Einfügemethode auswählen

Es gibt verschiedene Ansätze zum Einfügen von Datensätzen in eine Datenbank basierend auf Ihrem Anwendungsszenario. In der folgenden Tabelle sind die Optionen zusammengefasst:

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

Einfügen neuer Datensätze mithilfe von TableAdapters

Wenn Ihre Anwendung Datasets zum Speichern von Daten verwendet, können Sie dem gewünschten DataTable Datensatz neue Datensätze hinzufügen und dann die TableAdapter.Update Methode aufrufen. Die TableAdapter.Update Methode sendet alle Änderungen an der DataTable 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 neue Datensätze zur gewünschten DataTable hinzu, indem Sie ein neues DataRow erstellen und es zur Rows Sammlung hinzufügen.

  2. Nachdem Sie die neuen Zeilen zu DataTable 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 einem DataTable datensatz 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 in die Datenbank mit den übergebenen Parameterwerten eingefügt.

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

Das folgende Verfahren veranschaulicht, wie Sie die TableAdapter.Insert Methode zum Einfügen von Zeilen verwenden. In diesem Beispiel werden Daten in die Tabelle in der Region Northwind-Datenbank eingefügt.

Hinweis

Wenn Keine Instanz verfügbar ist, 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 direkt in eine Datenbank einfügen, indem Sie Befehlsobjekte verwenden.

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

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

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