Vložit, aktualizovat, odstranit: Výukový program pro připojení databáze ASP.NET
Přístup k datům z databáze je důležitým aspektem každého programovacího jazyka. Je nutné, aby každý programovací jazyk měl schopnost pracovat s databázemi.
ASP.Net má schopnost pracovat s různými typy databází. Umí pracovat s nejběžnějšími databázemi jako např Oracle si Microsoft SQL Server.
Disponuje také schopností pracovat s novými formami databází jako např MongoDB si MySQL.
Základy databázové konektivity
ASP.Net umí pracovat s většinou databází. Nejběžnější bytost Oracle si Microsoft SQL Server. Ale u každé databáze je logika práce se všemi většinou stejná.
V našich příkladech se podíváme na práci s Microsoft SQL Server jako naše databáze. Pro účely učení si lze stáhnout a používat Microsoft SQL Server Express Edition. Jedná se o bezplatný databázový software poskytovaný společností Microsoft.
Při práci s databázemi platí následující pojmy, které jsou společné pro všechny databáze.
- Přípojka – Pro práci s daty v databázi je prvním zřejmým krokem připojení. Připojení k databázi se obvykle skládá z níže uvedených parametrů.
- Název databáze nebo zdroj dat – Prvním důležitým parametrem je název databáze. Každé připojení může pracovat vždy pouze s jednou databází.
- pověřovací listiny – Dalším důležitým aspektem je „uživatelské jméno“ a „heslo“. Slouží k navázání spojení s databází.
- Volitelné parametry – Můžete zadat volitelné parametry, jak má .net zpracovat připojení k databázi. Například lze zadat parametr, jak dlouho má připojení zůstat aktivní.
- Výběr dat z databáze – Jakmile je spojení navázáno, data jsou načtena z databáze. ASP.Net má schopnost spustit příkaz 'sql' select proti databázi. Příkaz 'sql' lze použít k načtení dat z konkrétní tabulky v databázi.
- Vkládání dat do databáze – ASP.Net se používá pro vkládání záznamů do databáze. Hodnoty pro každý řádek, který je třeba vložit do databáze, jsou specifikovány v ASP.Net.
- Aktualizace dat do databáze – ASP.Net lze také použít k aktualizaci existujících záznamů do databáze. V ASP.Net lze zadat nové hodnoty pro každý řádek, který je třeba do databáze aktualizovat.
- Mazání dat z databáze – ASP.Net lze také použít k odstranění záznamů z databáze. Kód je zapsán pro odstranění konkrétního řádku z databáze.
Dobře, teď, když jsme viděli teoretickou část každé operace. Nyní se podívejme, jak provádět databázové operace v ASP.Net.
Databázová připojení ASP.NET
Podívejme se nyní na kód, který je potřeba ponechat na místě, aby bylo možné vytvořit připojení k databázi. V našem příkladu se připojíme k databázi, která má název Demodb. Níže jsou uvedeny přihlašovací údaje používané pro připojení k databázi
- Uživatelské jméno – sa
- Heslo – demo123
Pojďme pracovat s naší aktuální webovou aplikací vytvořenou v předchozích částech.
- Začněte do něj přidávat databázové operace.
- Náš příklad se zaměřuje na vytvoření jednoduchého připojení. Toto připojení je vytvořeno k databázi Demodb. To se provádí při prvním spuštění stránky.
- Po navázání spojení bude uživateli odeslána zpráva. Zpráva bude indikovat, že připojení bylo navázáno.
Abychom toho dosáhli, postupujte podle níže uvedených kroků.
Krok 1) Nejprve se ujistěte, že máte webovou aplikaci (DemoApplication) otevřenou ve Visual Studiu. Double klikněte na soubor 'demo.aspx.cs' a zadejte kód pro připojení k databázi.
Krok 2) Přidejte níže uvedený kód, který bude použit k navázání připojení k databázi.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connetionString; SqlConnection cnn; connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb ;User ID=sa;Password=demol23"; cnn = new SqlConnection(connetionString); cnn.Open(); Response.Write("Connection MAde"); conn.Close(); } } }
Vysvětlení kódu:-
- Prvním krokem je vytvoření proměnných. Bude použit k vytvoření připojovacího řetězce a připojení k databázi SQL Server.
- Dalším krokem je skutečně vytvořit připojovací řetězec. Spojovací řetězec se skládá z následujících částí
- Zdroj dat – Toto je název serveru, na kterém je databáze umístěna. V našem případě se nachází na stroji s názvem WIN-50GP30FGO75.
- Počáteční katalog se používá k zadání názvu databáze
- ID uživatele a heslo jsou přihlašovací údaje potřebné pro připojení k databázi.
- Dále přiřadíme spojovací řetězec k proměnné 'cnn'.
- Proměnná cnn je typu SqlConnection. Slouží k navázání spojení s databází.
- SqlConnection je třída v ASP.Net, která se používá k vytvoření připojení k databázi.
- Chcete-li použít tuto třídu, musíte nejprve vytvořit objekt této třídy. Proto zde vytvoříme proměnnou nazvanou 'cnn', která je typu SqlConnection.
- Dále použijeme metodu open proměnné cnn k otevření připojení k databázi. Uživateli zobrazíme zprávu o navázání spojení. To se provádí pomocí metody 'response.write'. Poté uzavřeme spojení s databází.
Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio. Získáte níže uvedený výstup. Po zobrazení formuláře klikněte na tlačítko Připojit.
Výstup:-
Výstupní zpráva zobrazená v prohlížeči ukáže, že bylo vytvořeno připojení k databázi.
ASP.NET Čtení databáze pomocí SqlDataReader
Chcete-li zobrazit data zpřístupněná pomocí Asp.Net, předpokládejme následující artefakty v naší databázi.
- Tabulka s názvem demotb. Tato tabulka bude sloužit k uložení ID a názvů různých výukových programů.
- Tabulka bude mít dva sloupce, jeden s názvem „TutorialID“ a druhý s názvem „TutorialName“.
- V tuto chvíli bude mít tabulka dva řádky, jak je uvedeno níže.
TutorialID | Název kurzu |
---|---|
1 | C# |
2 | ASP.Net |
Změňme kód tak, abychom se mohli dotazovat na tato data a zobrazovat informace na samotné webové stránce. Všimněte si, že zadaný kód navazuje na kód napsaný pro modul datového připojení.
Krok 1) Rozdělme kód na dvě části,
- První částí bude sestavení našeho příkazu „select“. Bude sloužit ke čtení dat z databáze.
- Poté provedeme příkaz „select“ proti databázi. Tím se odpovídajícím způsobem načítají všechny řádky tabulky.
Vysvětlení kódu:-
- Prvním krokem je vytvoření následujících proměnných
- SQLCommand – 'SQLCommand' je třída definovaná v C#. Tato třída se používá k provádění operací čtení a zápisu do databáze. Prvním krokem je tedy ujistit se, že vytvoříme typ proměnné této třídy. Tato proměnná pak bude použita v dalších krocích čtení dat z naší databáze.
- Objekt DataReader se používá k získání všech dat specifikovaných SQL dotazem. Všechny řádky tabulky pak můžeme číst jeden po druhém pomocí čtečky dat.
- Poté definujeme dvě řetězcové proměnné. Jedním z nich je „SQL“ pro uložení našeho příkazového řetězce SQL. Další je „Výstup“, který bude obsahovat všechny hodnoty tabulky.
- Dalším krokem je skutečně definovat SQL příkaz. To bude použito proti naší databázi. V našem případě je to “Select TutorialID, TutorialName from demotb”. Tím se načtou všechny řádky z tabulky demotb.
- Dále vytvoříme objekt příkazu, který se používá k provedení příkazu SQL proti databázi. V příkazu SQL musíte předat objekt připojení a řetězec SQL.
- Dále provedeme příkaz data reader, který načte všechny řádky z tabulky demotb.
- Nyní, když máme všechny řádky tabulky s sebou, potřebujeme mechanismus pro přístup k řádku jeden po druhém.
- K tomu použijeme příkaz 'while'.
- Příkaz 'while' bude použit pro přístup k řádkům ze čtečky dat jeden po druhém.
- Potom použijeme metodu 'GetValue' k získání hodnoty TutorialID a TutorialName.
Krok 2) V posledním kroku už jen zobrazíme výstup uživateli. Poté zavřeme všechny objekty související s operací databáze.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output =" "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = sqlquery.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Vysvětlení kódu:-
- V našem kódu budeme pokračovat zobrazením hodnoty proměnné Output. To se provádí pomocí metody Response.Write.
- Nakonec zavřeme všechny objekty související s naší databázovou operací. Pamatujte, že toto je vždy dobrá praxe.
Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, získáte níže uvedený výstup.
Výstup:-
Z výstupu je jasně vidět, že program dokázal získat hodnoty z databáze. Data se následně zobrazí v prohlížeči uživateli.
Vložte záznam databáze pomocí InsertCommand
Stejně jako přístup k datům má ASP.Net také schopnost vkládat záznamy do databáze. Vezměme stejnou strukturu tabulky, jaká se používá pro vkládání záznamů.
TutorialID | Název kurzu |
---|---|
1 | C# |
2 | ASP.Net |
Změňme kód v našem formuláři, abychom do tabulky mohli vložit následující řádek
TutorialID | Název kurzu |
---|---|
3 | VB.Net |
Krok 1) Jako první krok přidejte do našeho programu následující kód. Níže uvedený fragment kódu bude použit k vložení existujícího záznamu do naší databáze.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Insert into demotb(TutorialID,TutorialName) value(3, '" + "VB.Net +"')"; command = new SqlCommand(sql,cnn); adapter.InsertCommand = new SqlCommand(sql,cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(): cnn.Close(); } } }
Vysvětlení kódu:-
- Prvním krokem je vytvoření následujících proměnných
- SQLCommand – Tento datový typ se používá k definování objektů. Tyto objekty provádějí operace SQL proti databázi. Tento objekt bude obsahovat příkaz SQL, který bude spuštěn proti naší databázi SQL Server.
- Objekt DataAdapter se používá k provádění vkládání, odstraňování a aktualizaci příkazů SQL
- Poté definujeme řetězcovou proměnnou, která je „SQL“ pro uložení našeho příkazového řetězce SQL.
- Dalším krokem je vlastně definování SQL příkazu, který bude použit proti naší databázi. V našem případě vydáváme příkaz insert. Tím se vloží záznam TutorialID=3 a TutorialName=VB.Net
- Dále vytvoříme objekt příkazu, který se používá k provedení příkazu SQL proti databázi. V příkazu SQL musíte předat objekt připojení a řetězec SQL
- V našem příkazu datového adaptéru
- Přiřaďte k adaptéru příkaz insert SQL.
- Poté zadejte metodu 'ExecuteNonQuery'. To se používá k provedení příkazu Insert proti naší databázi.
- Metoda 'ExecuteNonQuery' se používá v C# vydávat jakékoli DML prohlášení (operace vkládání, mazání a aktualizace) vůči databázi.
- Chcete-li vydat jakékoli příkazy tabulky v ASP.Net, je třeba použít metodu 'ExecuteNonQuery'.
- Nakonec zavřeme všechny objekty související s naší databázovou operací. Pamatujte, že toto je vždy dobrá praxe.
Krok 2) Jako druhý krok přidáme stejný kód jako v části Přístup k datům. Slouží k zobrazení posledních dat tabulky v prohlížeči. Za tímto účelem přidáme níže uvedený kód do souboru demo.aspx.cs.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =" "; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Když je nastaven výše uvedený kód a projekt je spuštěn v sadě Visual Studio, získáte níže uvedený výstup.
Výstup:-
V okně prohlížeče uvidíte, že řádky byly úspěšně vloženy do databáze.
Aktualizujte záznam databáze pomocí UpdateCommand
ASP.Net má schopnost aktualizovat existující záznamy z databáze. Vezměme stejnou strukturu tabulky, která byla použita výše pro příklad pro vkládání záznamů.
TutorialID | Název kurzu |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net |
Změňme kód v našem formuláři, abychom mohli aktualizovat následující řádek. Hodnota starého řádku je TutorialID jako „3“ a název kurzu jako „VB.Net“. Což jej aktualizujeme na „VB.Net dokončeno“, zatímco hodnota řádku pro ID kurzu zůstane stejná.
Stará řada
TutorialID | Název kurzu |
---|---|
3 | VB.Net |
Nový řádek
TutorialID | Název kurzu |
---|---|
3 | VB.Net dokončen |
Krok 1) Jako první krok přidejte do našeho programu následující kód. Níže uvedený fragment kódu bude použit k aktualizaci existujícího záznamu v naší databázi.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Update demotb set TutorialName='"VB.Net Complete"+"' where TutorialID=3"; command = new SqlCommand(sql,cnn); adapter.InsertCommand = new SqlCommand(sql,cnn); adapter.InsertCommand.ExecuteNonQuery; command.Dispose(): cnn.Close(); } } }
Vysvětlení kódu:-
- Prvním krokem je vytvoření následujících proměnných
- SQLCommand – jeho datový typ se používá k definování objektů pro provádění SQL operací proti databázi. Tento objekt bude obsahovat příkaz SQL, který bude spuštěn proti naší databázi SQL Server.
- Objekt dataadapter se používá k provádění vkládání, odstraňování a aktualizaci příkazů SQL
- Poté definujeme řetězcovou proměnnou, což je SQL pro uložení našeho příkazového řetězce SQL.
- Dalším krokem je vlastně definování SQL příkazu, který bude použit proti naší databázi. V našem případě vydáváme prohlášení o aktualizaci. Tím se aktualizuje název kurzu na „VB.Net Complete“. TutorialID zůstane nezměněno a hodnota bude 3.
- Dále vytvoříme objekt příkazu. To se používá k provedení příkazu SQL proti databázi. V příkazu SQL jste předali objekt připojení a řetězec SQL
- V našem příkazu datového adaptéru nyní přiřadíme příkaz insert SQL k našemu adaptéru. Poté vydáme metodu ExecuteNonQuery. To se používá k provedení příkazu Update proti naší databázi.
- Nakonec zavřeme všechny objekty související s naší databázovou operací. Pamatujte, že toto je vždy dobrá praxe.
Krok 2) Jako druhý krok přidáme stejný kód jako v části Přístup k datům. Slouží k zobrazení posledních dat tabulky v prohlížeči. Za tímto účelem přidáme níže uvedený kód
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =" "; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, získáte níže uvedený výstup.
Výstup:-
V okně prohlížeče uvidíte, že řádky byly v databázi úspěšně aktualizovány.
Vymažte záznam databáze pomocí příkazu DeleteCommand
ASP.Net může odstranit existující záznamy z databáze. Vezměme stejnou strukturu tabulky, která byla použita výše v příkladu pro mazání záznamů.
TutorialID | Název kurzu |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net dokončen |
Změňme kód v našem formuláři, abychom mohli smazat následující řádek
TutorialID | Název kurzu |
---|---|
3 | VB.Net dokončen |
Přidejme tedy do našeho programu následující kód. Níže uvedený fragment kódu bude použit k odstranění existujícího záznamu v naší databázi.
Krok 1) Jako první krok přidejte do našeho programu následující kód. Níže uvedený fragment kódu bude použit k odstranění existujícího záznamu v naší databázi.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql,cnn); adapter.DeleteCommand = new SqlCommand(sql,cnn); adapter.DeleteCommand.ExecuteNonQuery; command.Dispose(): cnn.Close(); } } }
Vysvětlení kódu:-
- Klíčový rozdíl v tomto kódu je v tom, že nyní vydáváme příkaz SQL delete. Příkaz delete se používá k odstranění řádku v tabulce demotb, ve kterém má TutorialID hodnotu 3.
- V našem příkazu datového adaptéru nyní přiřadíme příkaz insert SQL k našemu adaptéru. Vydáváme také metodu 'ExecuteNonQuery', která se používá k provedení příkazu delete proti naší databázi.
Krok 2) Jako druhý krok přidáme stejný kód jako v části Přístup k datům. Slouží k zobrazení posledních dat tabulky v prohlížeči. Za tímto účelem přidáme níže uvedený kód.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =""; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while(dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, získáte níže uvedený výstup.
Výstup:-
Připojení ovládacích prvků Asp.net k datům
Viděli jsme, jak můžeme použít příkazy ASP.Net, jako je SQLCommand a SQLReader, k načtení dat z databáze. Také jsme viděli, jak můžeme přečíst každý řádek tabulky a zobrazit jej na webové stránce.
Existují metody, jak propojit ovládací prvky přímo s různými poli v tabulce. V současné době lze s aplikací ASP.Net svázat pouze níže uvedené ovládací prvky
- CheckboxList
- RadioButtonList
- Rozbalovací seznam
- Seznam
Podívejme se tedy na příklad, jak můžeme v ASP.Net použít řídicí vazbu. Zde si vezmeme příklad se seznamem. Řekněme, že máme v databázi následující data.
TutorialID | Název kurzu |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net dokončen |
Použijme ovládací prvek Listbox a podívejme se, jak může automaticky převzít data z naší tabulky Demotb.
Abychom toho dosáhli, postupujte podle níže uvedených kroků.
Krok 1) Vytvořte základní webový formulář. Z panelu nástrojů v sadě Visual Studio přetáhněte 2 komponenty – štítky a seznamy. Poté proveďte následující dílčí kroky;
- Vložte textovou hodnotu prvního štítku jako TutorialID
- Zadejte textovou hodnotu druhého štítku jako TutorialName
Níže je uvedeno, jak bude formulář vypadat po provedení výše uvedených kroků.
Krok 2) Dalším krokem je začít připojovat každý listbox k databázové tabulce.
- Nejprve klikněte na seznam pro ID výukového programu. To vyvolá další dialogové okno na straně ovládacího prvku.
- V dialogovém okně musíme kliknout na možnost Vybrat zdroj dat.
Krok 3) Poté se zobrazí dialogové okno. To lze použít k vytvoření nového zdroje dat. Zdroj dat bude představovat připojení k databázi. Vyberte možnost „Nový zdroj dat“.
Krok 4) Po výběru nového zdroje dat v posledním kroku se zobrazí následující obrazovka. Zde je potřeba zmínit typ zdroje dat, který chceme vytvořit.
- Vyberte možnost databáze pro práci s databází SQL Server.
- Nyní musíme pojmenovat náš zdroj dat. Zde mu dáváme název DemoDataSource.
- Nakonec klikneme na tlačítko 'OK' pro přechod na další obrazovku.
Krok 5) Nyní musíme vytvořit připojení k naší databázi. Na další obrazovce klikněte na tlačítko Nové připojení
Krok 6) Dále musíte přidat přihlašovací údaje pro připojení k databázi.
- Zvolte název serveru, na kterém je SQL Server umístěn
- Zadejte ID uživatele a heslo pro připojení k databázi
- Vyberte databázi jako 'demotb'
- Klikněte na tlačítko „OK“.
Krok 7) Na další obrazovce uvidíte tabulku Demotb. Klepnutím na tlačítko Další přijmete výchozí nastavení.
Krok 8) Nyní budete moci vyzkoušet připojení na další obrazovce.
- Klikněte na tlačítko Test Query a zjistěte, zda jste schopni získat hodnoty z tabulky
- Klepnutím na tlačítko Dokončit průvodce dokončete.
Krok 9) Nyní na poslední obrazovce můžete kliknout na tlačítko 'OK'. To nyní sváže seznam TutorialID s názvem pole TutorialID v tabulce 'demotb'.
Krok 10) Nyní je čas svázat seznam Název výukového programu s polem Název výukového programu.
- Nejprve klikněte na seznam názvů výukových programů.
- Dále v dialogovém okně, které se objeví na straně seznamu, vyberte z datového zdroje.
Krok 11) DemoDataSource již uvidíte při výběru zdroje dat na další obrazovce.
- Vyberte zdroj DemoData
- Klepněte na tlačítko OK.
Pokud jsou všechny výše uvedené kroky provedeny podle obrázku, získáte níže uvedený výstup.
Výstup:-
Z výstupu můžete vidět, že seznamy zobrazují ID výukového programu a názvy výukových programů
Shrnutí
- ASP.Net umí pracovat s databázemi jako např Oracle si Microsoft SQL Server.
- ASP.Net má všechny příkazy, které jsou nutné pro práci s databázemi. To zahrnuje navázání připojení k databázi. Můžete provádět operace, jako je výběr, aktualizace, vložení a odstranění.
- Objekt datareader v ASP.Net se používá k uložení všech dat vrácených databází. Smyčku While v ASP.net lze použít ke čtení datových řádků jeden po druhém.
- Objekt datového adaptéru se používá k provádění operací SQL, jako je vložení, odstranění a aktualizace.
- ASP.Net může svázat ovládací prvky s různými poli v tabulce. Jsou vázáni definováním zdroje dat v ASP.Net. Zdroj dat se používá k vytažení dat z databáze a jejich naplnění v ovládacích prvcích.