Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 / Notatka
Klasy DataSet 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 w bazie danych. Mimo że zestawy danych są sprawdzoną pomyślną technologią, zalecaną metodą dla nowych aplikacji platformy .NET jest użycie platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma bardziej prosty interfejs programowania.
Wymagania wstępne
Aby pracować z metodami TableAdapter, musisz mieć dostępny obiekt. 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 | Notatki |
---|---|---|
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 TableAdapterów, Insert metoda niedostępna |
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, obiekt TableAdapter jest skonfigurowany do używania procedur składowanych lub właściwość GenerateDBDirectMethods jest ustawiona na false wartość. Jeśli metoda Insert pozostaje niedostępna po ponownym wygenerowaniu TableAdapter, prawdopodobnie tabela nie dostarcza wystarczającej ilości informacji o schemacie, aby odróżnić poszczególne wiersze (na przykład w tabeli może nie być ustawionego klucza podstawowego). |
Aplikacja nie używa TableAdapters | Używanie obiektów poleceń do wstawiania nowych rekordów do bazy danych | Przykład: SqlCommand |
Wstawianie nowych rekordów przy użyciu 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 DataTable do bazy danych, w 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 DataTable, 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 DataTable a następnie wywołać metodę
TableAdapter.Update
w celu zapisania nowego rekordu 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 dane są wstawiane do tabeli Region
w bazie danych Northwind.
Uwaga / Notatka
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 właściwości
Connection
,CommandType
iCommandText
.
Poniższa procedura przedstawia sposób wstawiania rekordów do bazy danych przy użyciu obiektu polecenia. W tym przykładzie wstawia dane do tabeli Region
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();