Vložení nových záznamů do databáze v aplikacích .NET Framework
Při vkládání nových záznamů do databáze s ADO.NET v projektu rozhraní .NET Framework je běžným přístupem použití metod TableAdapter . Objekty TableAdapter umožňují komunikaci mezi vaší aplikací a databází. Poskytují různé způsoby vložení nových záznamů do databáze v závislosti na požadavcích vaší aplikace. Můžete použít metodu TableAdapter.Update
nebo jednu z metod TableAdapter DBDirect (konkrétně metodu TableAdapter.Insert
).
Tento článek popisuje, jak vložit záznamy do databáze pro aplikaci sestavenou pomocí ADO.NET a rozhraní .NET Framework pomocí jazyka Visual Basic (VB) nebo C#. Pokud vaše konfigurace aplikace používá Entity Framework 6, přečtěte si téma Přidání nové entity do kontextu nebo Entity Framework Core, viz Přidání dat.
Poznámka:
Datové sady a související třídy jsou staršími technologiemi rozhraní .NET Framework z počátku 2000, které aplikacím umožňují pracovat s daty v paměti, zatímco aplikace jsou odpojené od databáze. Tyto technologie jsou zvláště užitečné pro aplikace, které uživatelům umožňují upravovat data a uchovávat změny zpět do databáze. I když se datové sady ukázaly jako velmi úspěšná technologie, doporučujeme, aby nové aplikace .NET používaly Entity Framework Core. Entity Framework poskytuje přirozenější způsob práce s tabulkovými daty jako objektovými modely a má jednodušší programovací rozhraní.
Požadavky
Pokud chcete pracovat s metodami TableAdapter, musíte mít dostupnou instanci. Další informace naleznete v tématu Vytváření a konfigurace objektů TableAdapter v aplikacích rozhraní .NET Framework.
Zabezpečení .NET: Musíte mít přístup k databázi, ke které se pokoušíte připojit, a oprávnění k provedení vložení do požadované tabulky.
Volba metody vložení
Existují různé přístupy k vkládání záznamů do databáze na základě scénáře vaší aplikace. Následující tabulka shrnuje možnosti:
Scénář | Přístup | Notes |
---|---|---|
Aplikace používá datové sady k ukládání dat. | K odeslání všech změn do databáze použijte metodu TableAdapter.Update . | Mezi změny patří aktualizace, vložení a odstranění. |
Aplikace používá objekty k ukládání dat. | Použití metody TableAdapter.Insert k vložení nových záznamů do databáze | Díky tomuto přístupu můžete mít přesnou kontrolu nad vytvářením nových záznamů. |
Aplikace používá TableAdaptery, Insert metoda není k dispozici. |
Nastavte vlastnost TableAdapter GenerateDBDirectMethods z true Návrháře datových sad a uložte datovou sadu, aby se znovu vygeneruje objekt TableAdapter. |
Pokud váš TableAdapter nemá metodu Insert , TableAdapter je buď nakonfigurován pro použití uložených procedur, nebo GenerateDBDirectMethods je vlastnost nastavena na false . Insert Pokud metoda po opětovném vygenerování objektu TableAdapter zůstane nedostupná, tabulka pravděpodobně neposkytuje dostatek informací o schématu k rozlišení mezi jednotlivými řádky (například nemusí existovat žádný primární klíč nastavený v tabulce). |
Aplikace nepoužívá tableAdaptery | Vložení nových záznamů do databáze pomocí objektů příkazů | Příklad: SqlCommand |
Vložení nových záznamů pomocí objektů TableAdapter
Pokud vaše aplikace k ukládání dat používá datové sady, můžete do požadované DataTable datové sady přidat nové záznamy a pak metodu TableAdapter.Update
volat. Metoda TableAdapter.Update
odešle všechny změny v DataTable databázi, včetně upravených a odstraněných záznamů.
Vložení nových záznamů pomocí metody TableAdapter.Update
Následující postup ukazuje, jak vložit nové záznamy do databáze pomocí TableAdapter.Update
metody:
Přidejte do požadovaného objektu DataTable nové záznamy tak, že vytvoříte nový DataRow a přidáte ho Rows do kolekce.
Po přidání nových řádků do DataTablemetody zavolejte metodu
TableAdapter.Update
. Množství dat, která se mají aktualizovat, můžete řídit předáním jedné z následujících hodnot parametrů:Následující kód ukazuje, jak přidat nový záznam do DataTable a potom volat metodu
TableAdapter.Update
pro uložení nového řádku do databáze. Tento příklad používáRegion
tabulku v databázi 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);
Vložení nových záznamů pomocí metody TableAdapter.Insert
Pokud vaše aplikace k ukládání dat používá objekty, můžete pomocí TableAdapter.Insert
této metody vytvořit nové řádky přímo v databázi. Metoda Insert
přijímá jednotlivé hodnoty pro každý sloupec jako parametry. Při volání metody se do databáze vloží nový záznam s předanými hodnotami parametrů.
- Zavolejte metodu TableAdapter
Insert
a předejte hodnoty pro každý sloupec jako parametry.
Následující postup ukazuje, jak použít metodu TableAdapter.Insert
pro vložení řádků. Tento příklad vloží data do Region
tabulky v databázi Northwind.
Poznámka:
Pokud nemáte k dispozici instanci, vytvořte instanci objektu TableAdapter, který chcete použít.
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter =
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Insert(5, "NorthWestern");
Vložení nových záznamů s objekty příkazů
Nové záznamy můžete do databáze vložit přímo pomocí objektů příkazů.
- Vytvořte nový objekt příkazu a nastavte jeho
Connection
,CommandType
aCommandText
vlastnosti.
Následující postup ukazuje, jak vložit záznamy do databáze pomocí objektu příkazu. Tento příklad vloží data do Region
tabulky v databázi 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();