Wstawianie nowych rekordów do bazy danych w aplikacjach .NET Framework
Aby wstawić nowe rekordy do bazy danych z ADO.NET w projekcie programu .NET Framework, typowym podejściem jest użycie metod TableAdapter. Metody TableAdapters umożliwiają komunikację między aplikacją a bazą danych. Zapewniają różne sposoby wstawiania nowych rekordów do bazy danych w zależności od wymagań aplikacji. Można użyć TableAdapter.Update
metody lub jednej z metod TableAdapter DBDirect (w szczególności TableAdapter.Insert
metody).
W tym artykule opisano sposób wstawiania rekordów do bazy danych dla aplikacji skompilowanych przy użyciu ADO.NET i programu .NET Framework przy użyciu języka Visual Basic (VB) lub C#. Jeśli konfiguracja aplikacji korzysta z programu Entity Framework 6, zobacz Dodawanie nowej jednostki do kontekstu lub dla programu Entity Framework Core, zobacz Dodawanie danych.
Uwaga
Zestawy danych i powiązane klasy to starsze technologie .NET Framework z początku 2000 roku, które umożliwiają aplikacjom pracę z danymi w pamięci, gdy aplikacje są odłączone od bazy danych. Technologie te są szczególnie przydatne w przypadku aplikacji, które umożliwiają użytkownikom modyfikowanie danych i utrwalanie zmian z powrotem w bazie danych. Mimo że zestawy danych okazały się bardzo udaną technologią, zalecamy, aby nowe aplikacje platformy .NET używały platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma prostszy interfejs programowania.
Wymagania wstępne
Aby pracować z metodami TableAdapter, musisz mieć dostępne wystąpienie. Aby uzyskać więcej informacji, zobacz Create and configure TableAdapters in .NET Framework applications (Tworzenie i konfigurowanie elementów TableAdapters w aplikacjach .NET Framework).
Zabezpieczenia platformy .NET: musisz mieć dostęp do bazy danych, z którą próbujesz nawiązać połączenie, i uprawnienia do wykonywania wstawiania do żądanej tabeli.
Wybieranie metody wstawiania
Istnieją różne podejścia do wstawiania rekordów do bazy danych na podstawie scenariusza aplikacji. Poniższa tabela zawiera podsumowanie opcji:
Scenariusz | Metoda | Uwagi |
---|---|---|
Aplikacja używa zestawów danych do przechowywania danych | Użyj metody TableAdapter.Update, aby wysłać wszystkie zmiany do bazy danych | Zmiany obejmują aktualizacje, wstawienia i usunięcia. |
Aplikacja używa obiektów do przechowywania danych | Użyj metody TableAdapter.Insert, aby wstawić nowe rekordy do bazy danych | Takie podejście umożliwia uzyskanie bardziej precyzyjnej kontroli nad tworzeniem nowych rekordów. |
Aplikacja używa klasy TableAdapters, Insert metody niedostępnej |
Ustaw właściwość TableAdapter GenerateDBDirectMethods na true z poziomu projektanta zestawów danych i zapisz zestaw danych w celu ponownego wygenerowania elementu TableAdapter |
Jeśli obiekt TableAdapter nie ma Insert metody, parametr TableAdapter jest skonfigurowany do używania procedur składowanych lub GenerateDBDirectMethods właściwość jest ustawiona na false wartość . Insert Jeśli metoda pozostaje niedostępna po wygenerowaniu tabeli TableAdapter, prawdopodobnie nie dostarcza wystarczającej ilości informacji o schemacie, aby odróżnić poszczególne wiersze (na przykład w tabeli nie ma żadnego klucza podstawowego). |
Aplikacja nie używa elementów TableAdapters | Używanie obiektów poleceń do wstawiania nowych rekordów do bazy danych | Przykład: SqlCommand |
Wstawianie nowych rekordów przy użyciu klasy TableAdapters
Jeśli aplikacja używa zestawów danych do przechowywania danych, możesz dodać nowe rekordy do żądanego DataTable zestawu danych, a następnie wywołać metodę TableAdapter.Update
. Metoda TableAdapter.Update
wysyła wszelkie zmiany w bazie danych, w DataTable tym zmodyfikowane i usunięte rekordy.
Wstawianie nowych rekordów za pomocą metody TableAdapter.Update
Poniższa procedura przedstawia sposób wstawiania nowych rekordów do bazy danych przy użyciu TableAdapter.Update
metody :
Dodaj nowe rekordy do żądanej DataTable kolekcji, tworząc nowe DataRow i dodając je do Rows kolekcji.
Po dodaniu nowych wierszy do DataTablemetody wywołaj metodę
TableAdapter.Update
. Ilość danych do zaktualizowania można kontrolować, przekazując jedną z następujących wartości parametrów:Poniższy kod pokazuje, jak dodać nowy rekord do klasy , DataTable a następnie wywołać
TableAdapter.Update
metodę w celu zapisania nowego wiersza w bazie danych. W tym przykładzie użytoRegion
tabeli w bazie danych 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);
Wstawianie nowych rekordów za pomocą metody TableAdapter.Insert
Jeśli aplikacja używa obiektów do przechowywania danych, możesz użyć TableAdapter.Insert
metody , aby utworzyć nowe wiersze bezpośrednio w bazie danych. Metoda Insert
akceptuje poszczególne wartości dla każdej kolumny jako parametry. Podczas wywoływania metody nowy rekord jest wstawiany do bazy danych z przekazanymi wartościami parametrów.
- Wywołaj metodę TableAdapter
Insert
i przekaż wartości dla każdej kolumny jako parametry.
Poniższa procedura pokazuje, jak używać TableAdapter.Insert
metody do wstawiania wierszy. W tym przykładzie Region
dane są wstawiane do tabeli w bazie danych Northwind.
Uwaga
Jeśli nie masz dostępnego wystąpienia, utwórz wystąpienie klasy TableAdapter, którego chcesz użyć.
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter =
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Insert(5, "NorthWestern");
Wstawianie nowych rekordów z obiektami poleceń
Nowe rekordy można wstawić bezpośrednio do bazy danych przy użyciu obiektów poleceń.
- Utwórz nowy obiekt polecenia, a następnie ustaw jego
Connection
właściwości ,CommandType
iCommandText
.
Poniższa procedura przedstawia sposób wstawiania rekordów do bazy danych przy użyciu obiektu polecenia. W tym przykładzie Region
wstaw dane do tabeli w bazie danych 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();