Umetanje, ažuriranje, brisanje: ASP.NET veza s bazom podataka
⚡ Pametni sažetak
ASP.NET se povezuje s bazama podataka kao što su SQL Server i Oracle putem ADO.NET-a, korištenjem klasa SqlConnection, SqlCommand, SqlDataReader i SqlDataAdapter za otvaranje veze i pokretanje operacija odabira, umetanja, ažuriranja i brisanja nad pohranjenim zapisima.
Pristup podacima iz baze podataka važan je aspekt svakog programskog jezika. Neophodno je da bilo koji programski jezik ima mogućnost rada s bazama podataka.
ASP.NET ima mogućnost rada s različitim vrstama baza podataka. Može raditi s najčešćim bazama podataka kao što su Oracle i Microsoft SQL Poslužitelja.
Također ima mogućnost rada s novim oblicima baza podataka kao što su MongoDB i MySQL.
Osnove povezivanja baza podataka
ASP.NET ima mogućnost rada s većinom baza podataka, a najčešće su Oracle i Microsoft SQL Server. Ali sa svakom bazom podataka, logika rada sa svima uglavnom je ista.
U našim primjerima razmotrit ćemo rad s Microsoft SQL Server kao naša baza podataka. U svrhu učenja, možete preuzeti i koristiti Microsoft SQL Server Express Edition. Ovo je besplatni softver za baze podataka koji pruža Microsoft.
Prilikom rada s bazama podataka, sljedeći koncepti su zajednički svim bazama podataka:
- priključak – Za rad s podacima u bazi podataka prvi očiti korak je povezivanje. Povezivanje s bazom podataka obično se sastoji od dolje navedenih parametara.
- Naziv baze podataka ili izvor podataka – Prvi važan parametar je naziv baze podataka. Svaka veza može raditi samo s jednom bazom podataka u isto vrijeme.
- akreditiv – Sljedeći važan aspekt je korisničko ime i lozinka. Koristi se za uspostavljanje veze s bazom podataka.
- Neobavezni parametri – Možete odrediti opcionalne parametre o tome kako .NET treba postupati s vezom s bazom podataka. Na primjer, možete odrediti parametar za koliko dugo veza treba ostati aktivna.
- Odabir podataka iz baze podataka – Nakon što se veza uspostavi, podaci se dohvaćaju iz baze podataka. ASP.NET ima mogućnost izvršavanja SQL naredbe select nad bazom podataka. SQL naredba može se koristiti za dohvaćanje podataka iz određene tablice u bazi podataka.
- Umetanje podataka u bazu podataka – ASP.NET se koristi za umetanje zapisa u bazu podataka. Vrijednosti za svaki redak koji treba umetnuti u bazu podataka navedene su u ASP.NET-u.
- Ažuriranje podataka u bazi – ASP.NET se također može koristiti za ažuriranje postojećih zapisa u bazi podataka. Nove vrijednosti mogu se odrediti u ASP.NET-u za svaki redak koji treba ažurirati u bazi podataka.
- Brisanje podataka iz baze podataka – ASP.NET se također može koristiti za brisanje zapisa iz baze podataka. Kod je napisan za brisanje određenog retka iz baze podataka.
Sada kada smo vidjeli teorijski dio svake operacije, pogledajmo kako izvoditi operacije s bazom podataka u ASP.NET-u.
ASP.NET veze s bazom podataka
Pogledajmo sada kod koji je potrebno koristiti za stvaranje veze s bazom podataka. U našem primjeru, povezat ćemo se s bazom podataka pod nazivom Demodb. Vjerodajnice korištene za povezivanje s bazom podataka navedene su u nastavku:
- Korisničko ime – sa
- Lozinka – demo123
Radimo s našom trenutnom web aplikacijom kreiranom u prethodnim odjeljcima.
- Počnite joj dodavati operacije baze podataka.
- Naš primjer razmatra uspostavljanje jednostavne veze. Ova se veza uspostavlja s bazom podataka Demodb. To se radi prilikom prvog pokretanja stranice.
- Kada se veza uspostavi, korisniku će biti poslana poruka. Poruka će pokazati da je veza uspostavljena.
Slijedimo dolje navedene korake kako bismo to postigli.
Korak 1) Prvo se pobrinimo da imate otvorenu web aplikaciju (DemoApplication) u Visual Studiju. Double-kliknite datoteku demo.aspx.cs za unos koda za povezivanje s bazom podataka.
Korak 2) Dodajte donji kod koji će se koristiti za uspostavljanje veze s bazom podataka.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString; SqlConnection cnn; connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; cnn = new SqlConnection(connectionString); cnn.Open(); Response.Write("Connection Made"); cnn.Close(); } } }
Code Obrazloženje:-
- Prvi korak je stvaranje varijabli. One će se koristiti za stvaranje niza za povezivanje i veze s bazom podataka SQL Servera.
- Sljedeći korak je zapravo stvaranje niza za povezivanje. Niz za povezivanje sastoji se od sljedećih dijelova:
- Izvor podataka – Ovo je naziv poslužitelja na kojem se nalazi baza podataka. U našem slučaju, nalazi se na računalu pod nazivom WIN-50GP30FGO75.
- Početni katalog se koristi za određivanje naziva baze podataka.
- Korisničko ime i lozinka su podaci potrebni za povezivanje s bazom podataka.
- Zatim, niz za povezivanje dodjeljujemo varijabli cnn.
- Varijabla cnn je tipa SqlConnection. Ovo se koristi za uspostavljanje veze s bazom podataka.
- SqlConnection je klasa u ASP.NET-u koja se koristi za stvaranje veze s bazom podataka.
- Za korištenje ove klase, prvo morate stvoriti objekt te klase. Stoga ovdje stvaramo varijablu pod nazivom cnn koja je tipa SqlConnection.
- Zatim koristimo metodu Open varijable cnn za otvaranje veze s bazom podataka. Korisniku prikazujemo poruku da je veza uspostavljena. To se radi putem metode Response.Write. Nakon toga zatvaramo vezu s bazom podataka.
Kada je gornji kod postavljen i projekt se izvršava pomoću Visual Studio, dobit ćete donji ispis. Nakon što se obrazac prikaže, kliknite gumb Poveži se.
Izlaz:-
Izlazna poruka prikazana u pregledniku pokazat će da je uspostavljena veza s bazom podataka.
ASP.NET čitanje baze podataka pomoću SqlDataReader
Za prikaz podataka kojima se pristupa putem ASP.NET-a, pretpostavimo sljedeće artefakte u našoj bazi podataka.
- Tablica pod nazivom demotb. Ova tablica će se koristiti za pohranjivanje ID-a i naziva raznih tutorijala.
- Tablica će imati dva stupca, jedan pod nazivom TutorialID, a drugi pod nazivom TutorialName.
- Za sada će tablica imati dva retka kao što je prikazano u nastavku.
| ID vodiča | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Promijenimo kôd tako da možemo upitati za ove podatke i prikazati informacije na samoj web stranici. Imajte na umu da je uneseni kôd nastavak onog napisanog za modul za povezivanje podataka.
Korak 1) Podijelimo kod na dva dijela:
- Prvi dio će biti konstruiranje naše naredbe select. Koristit će se za čitanje podataka iz baze podataka.
- Zatim ćemo izvršiti naredbu select nad bazom podataka. To će dohvatiti sve retke tablice u skladu s tim.
Code Obrazloženje:-
- Prvi korak je kreiranje sljedećih varijabli:
- SqlCommand – SqlCommand je klasa definirana u C#. Ova klasa se koristi za izvođenje operacija čitanja i pisanja u bazu podataka.
- Objekt DataReader koristi se za dobivanje svih podataka navedenih u SQL upitu. Zatim možemo čitati sve retke tablice jedan po jedan pomoću čitača podataka.
- Zatim definiramo dvije string varijable. Jedna je sql za pohranu našeg SQL naredbenog niza. Sljedeća je Output koja će sadržavati sve vrijednosti tablice.
- Sljedeći korak je zapravo definirati SQL naredbu. U našem slučaju, to je „Select TutorialID, TutorialName from demotb“. Ovo će dohvatiti sve retke iz tablice demotb.
- Zatim stvaramo naredbeni objekt koji se koristi za izvršavanje SQL naredbe u bazi podataka. U SQL naredbi morate proslijediti objekt veze i SQL niz.
- Zatim izvršavamo naredbu čitača podataka koja će dohvatiti sve retke iz tablice demotb.
- Sada kada imamo sve retke tablice, potreban nam je mehanizam za pristup redovima jedan po jedan.
- Za to koristimo naredbu while za pristup redovima iz čitača podataka jedan po jedan.
- Zatim koristimo metodu GetValue kako bismo dobili vrijednost TutorialID i TutorialName.
Korak 2) U završnom koraku prikazujemo izlaz korisniku. Zatim zatvaramo sve objekte povezane s operacijom baze podataka.
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 = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Code Obrazloženje:-
- Nastavljamo naš kod prikazom vrijednosti varijable Output. To se radi pomoću metode Response.Write.
- Konačno zatvaramo sve objekte povezane s našim radom s bazom podataka. Zapamtite, ovo je uvijek dobra praksa.
Kada je gornji kod postavljen i projekt pokrenut pomoću Visual Studija, dobit ćete donji izlaz.
Izlaz:-
Iz izlaza možete jasno vidjeti da je program uspio dobiti vrijednosti iz baze podataka. Podaci se zatim prikazuju korisniku u pregledniku.
Umetnite zapis baze podataka koristeći InsertCommand
Baš kao i kod pristupanja podacima, ASP.NET ima mogućnost i umetanja zapisa u bazu podataka. Uzmimo istu strukturu tablice koja se koristi za umetanje zapisa.
| ID vodiča | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Promijenimo kod u našem obrascu tako da možemo umetnuti sljedeći redak u tablicu:
| ID vodiča | TutorialName |
|---|---|
| 3 | VB.Net |
Korak 1) Kao prvi korak, dodajmo sljedeći kod našem programu. Donji isječak koda koristit će se za umetanje zapisa u našu bazu podataka.
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) values(3,'VB.Net')"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Obrazloženje:-
- Prvi korak je kreiranje sljedećih varijabli:
- SqlCommand – Ovaj tip podataka koristi se za definiranje objekata koji izvršavaju SQL operacije na bazi podataka. Ovaj objekt će sadržavati SQL naredbu koja će se izvršavati na našoj SQL Server bazi podataka.
- Objekt DataAdapter se koristi za izvršavanje SQL naredbi za umetanje, brisanje i ažuriranje.
- Zatim definiramo string varijablu, koja je sql, za pohranu našeg SQL naredbenog niza.
- Sljedeći korak je zapravo definirati SQL naredbu. U našem slučaju, izdajemo naredbu za umetanje. Ovo će umetnuti zapis TutorialID=3 i TutorialName=VB.Net.
- Zatim stvaramo naredbeni objekt koji se koristi za izvršavanje SQL naredbe u bazi podataka. U SQL naredbi morate proslijediti objekt veze i SQL niz.
- U našoj naredbi adaptera podataka:
- Povežite naredbu insert SQL s adapterom.
- Zatim izdajte metodu ExecuteNonQuery. Ona se koristi za izvršavanje naredbe insert u našoj bazi podataka.
- Metoda ExecuteNonQuery se koristi u C# za izdavanje bilo kakvih DML izjava (operacija umetanja, brisanja i ažuriranja) prema bazi podataka.
- Konačno zatvaramo sve objekte povezane s našim radom s bazom podataka. Zapamtite, ovo je uvijek dobra praksa.
Korak 2) Kao drugi korak, dodajmo isti kod kao u odjeljku za pristup podacima. To služi za prikaz nedavnih podataka tablice u pregledniku. Za to ćemo dodati donji kod u datoteku demo.aspx.cs.
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 = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Kada je gornji kod postavljen i projekt se izvrši u Visual Studiju, dobit ćete donji izlaz.
Izlaz:-
U prozoru preglednika vidjet ćete da je redak uspješno umetnut u bazu podataka.
Ažurirajte zapis baze podataka koristeći UpdateCommand
ASP.NET ima mogućnost ažuriranja postojećih zapisa u bazi podataka. Uzmimo istu strukturu tablice koja je korištena gore za primjer umetanja zapisa.
| ID vodiča | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Promijenimo kôd u našem obrascu kako bismo mogli ažurirati sljedeći redak. Stara vrijednost retka je TutorialID kao 3 i TutorialName kao VB.Net, što ćemo ažurirati na „VB.Net Complete“, dok će vrijednost retka za TutorialID ostati ista.
Stari red
| ID vodiča | TutorialName |
|---|---|
| 3 | VB.Net |
Novi red
| ID vodiča | TutorialName |
|---|---|
| 3 | VB.Net Complete |
Korak 1) Kao prvi korak, dodajmo sljedeći kod našem programu. Donji isječak koda koristit će se za ažuriranje postojećeg zapisa u našoj bazi podataka.
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(); } } }
Code Obrazloženje:-
- Prvi korak je kreiranje sljedećih varijabli:
- SqlCommand – Ovaj tip podataka koristi se za definiranje objekata za izvođenje SQL operacija na bazi podataka. Ovaj objekt će sadržavati SQL naredbu koja će se izvršavati na našoj SQL Server bazi podataka.
- Objekt DataAdapter se koristi za izvršavanje SQL naredbi za umetanje, brisanje i ažuriranje.
- Zatim definiramo string varijablu, koja je sql, za pohranu našeg SQL naredbenog niza.
- Sljedeći korak je zapravo definirati SQL naredbu. U našem slučaju, izdajemo naredbu za ažuriranje. To će ažurirati TutorialName na „VB.Net Complete“. TutorialID će ostati nepromijenjen, a vrijednost će biti 3.
- Zatim stvaramo objekt naredbe. Koristi se za izvršavanje SQL naredbe na bazi podataka. U SQL naredbi prosljeđujete objekt veze i SQL niz znakova.
- U našoj naredbi adaptera podataka, povezujemo SQL naredbu s našim adapterom. Zatim izdajemo metodu ExecuteNonQuery. Ona se koristi za izvršavanje naredbe ažuriranja na našoj bazi podataka.
- Konačno zatvaramo sve objekte povezane s našim radom s bazom podataka. Zapamtite, ovo je uvijek dobra praksa.
Korak 2) Kao drugi korak, dodajmo isti kod kao u odjeljku za pristup podacima. To služi za prikaz nedavnih podataka tablice u pregledniku. Za to ćemo dodati donji kod.
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 = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Kada je gornji kod postavljen i projekt se izvrši pomoću Visual Studija, dobit ćete donji izlaz.
Izlaz:-
U prozoru preglednika vidjet ćete da je redak uspješno ažuriran u bazi podataka.
Izbrišite zapis baze podataka koristeći DeleteCommand
ASP.NET može izbrisati postojeće zapise iz baze podataka. Uzmimo istu strukturu tablice koja je korištena gore za primjer brisanja zapisa.
| ID vodiča | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complete |
Promijenimo kod u našem obrascu tako da možemo izbrisati sljedeći redak:
| ID vodiča | TutorialName |
|---|---|
| 3 | VB.Net Complete |
Korak 1) Kao prvi korak, dodajmo sljedeći kod našem programu. Donji isječak koda koristit će se za brisanje postojećeg zapisa u našoj bazi podataka.
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(); } } }
Code Obrazloženje:-
- Ključna razlika u ovom kodu je u tome što sada izdajemo SQL naredbu za brisanje. Naredba za brisanje koristi se za brisanje retka u tablici demotb u kojoj TutorialID ima vrijednost 3.
- U našoj naredbi adaptera podataka, povezujemo SQL naredbu za brisanje s našim adapterom. Također izdajemo metodu ExecuteNonQuery koja se koristi za izvršavanje naredbe za brisanje nad našom bazom podataka.
Korak 2) Kao drugi korak, dodajmo isti kod kao u odjeljku za pristup podacima. To služi za prikaz nedavnih podataka tablice u pregledniku. Za to ćemo dodati donji kod.
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 = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Kada je gornji kod postavljen i projekt se izvrši pomoću Visual Studija, dobit ćete donji izlaz.
Izlaz:-
Povezivanje ASP.NET kontrola s podacima
Vidjeli smo kako možemo koristiti ASP.NET naredbe poput SqlCommand i SqlDataReader za dohvaćanje podataka iz baze podataka. Također smo vidjeli kako možemo pročitati svaki redak tablice i prikazati ga na web stranici.
Dostupne su metode za izravno povezivanje kontrola s različitim poljima u tablici. Trenutno se samo sljedeće kontrole mogu povezati s ASP.NET aplikacijom:
- ProvjeritiBoxPopis
- RadioButtonList
- Padajući popis
- PopisBox
Pogledajmo primjer kako možemo koristiti povezivanje kontrola u ASP.NET-u. Ovdje ćemo uzeti popisBox primjer. Recimo da u našoj bazi podataka imamo sljedeće podatke.
| ID vodiča | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complete |
Koristimo popisBox kontrolu i vidimo kako može automatski preuzeti podatke iz naše demotb tablice. Slijedimo dolje navedene korake kako bismo to postigli.
Korak 1) Izradite osnovni web obrazac. Iz alatnog okvira u Visual Studiju povucite i ispustite 2 komponente – oznake i popisBoxes. Zatim izvršite sljedeće podkorake:
- Vrijednost teksta prve oznake postavite kao TutorialID.
- Vrijednost teksta druge oznake postavite kao NazivTutoriala.
U nastavku je prikazano kako bi obrazac izgledao nakon što se izvrše gore navedeni koraci.
Korak 2) Sljedeći korak je početak povezivanja svake listeBox u tablicu baze podataka.
- Prvo kliknite na PopisBox za TutorialID. Ovo će otvoriti još jedan dijaloški okvir sa strane kontrole.
- U dijaloškom okviru kliknite na opciju Odaberi izvor podataka.
Korak 3) Zatim će vam se prikazati dijaloški okvir. To se može koristiti za stvaranje novog izvora podataka. Izvor podataka predstavljat će vezu s bazom podataka. Odaberite opciju Novi izvor podataka.
Korak 4) Zaslon u nastavku bit će upitan nakon odabira novog izvora podataka u zadnjem koraku. Ovdje moramo spomenuti vrstu izvora podataka koji želimo stvoriti.
- Odaberite opciju baze podataka za rad s bazom podataka SQL Servera.
- Sada moramo dati ime našem izvoru podataka. Ovdje mu dajemo naziv DemoDataSource.
- Na kraju, kliknemo gumb U redu za prelazak na sljedeći ekran.
Korak 5) Sada moramo stvoriti vezu s našom bazom podataka. Na sljedećem ekranu kliknite gumb Nova veza.
Korak 6) Zatim trebate dodati vjerodajnice za povezivanje s bazom podataka.
- Odaberite naziv poslužitelja na kojem se nalazi SQL Server.
- Unesite korisničko ime i lozinku za povezivanje s bazom podataka.
- Odaberite bazu podataka kao demotb.
- Pritisnite gumb U redu.
Korak 7) Na sljedećem zaslonu moći ćete vidjeti demotb tablicu. Samo kliknite gumb Dalje da biste prihvatili zadanu postavku.
Korak 8) Sada ćete moći testirati vezu na sljedećem ekranu.
- Kliknite gumb Testiraj upit kako biste vidjeli možete li dobiti vrijednosti iz tablice.
- Pritisnite gumb Završi kako biste dovršili čarobnjaka.
Korak 9) Sada na posljednjem zaslonu možete kliknuti gumb U redu. Ovo će sada povezati popis TutorialID-ovaBox na naziv polja TutorialID u tablici demotb.
Korak 10) Sada je vrijeme za povezivanje TutorialName listeBox u polje NazivTutoriala.
- Prvo kliknite na popis TutorialNameBox.
- Zatim odaberite Izvor podataka u dijaloškom okviru koji se pojavljuje sa strane popisaBox.
Korak 11) Već ćete vidjeti DemoDataSource kada odaberete Izvor podataka na sljedećem ekranu.
- Odaberite DemoDataSource.
- Kliknite na gumb OK.
Ako se svi gornji koraci izvrše kako je prikazano, dobit ćete dolje navedeni izlaz.
Izlaz:-
Iz izlaza možete vidjeti da je listaBoxprikazuju ID_tutoriala i Naziv_tutoriala.




























