Lisamine, värskendamine, kustutamine: ASP.NET andmebaasiühendus
⚡ Nutikas kokkuvõte
ASP.NET loob ühenduse andmebaasidega, näiteks SQL Server ja Oracle ADO.NET-i kaudu, kasutades ühenduse avamiseks ja salvestatud kirjete valiku-, lisamis-, värskendamis- ja kustutamistoimingute käivitamiseks klasse SqlConnection, SqlCommand, SqlDataReader ja SqlDataAdapter.
Andmebaasist andmetele juurdepääs on iga programmeerimiskeele oluline aspekt. Iga programmeerimiskeel peab suutma andmebaasidega töötada.
ASP.NET suudab töötada erinevat tüüpi andmebaasidega. See saab töötada kõige levinumate andmebaasidega, näiteks Oracle ja Microsoft SQL Server.
Sellel on ka võimalus töötada uute andmebaaside vormidega, näiteks MongoDB ja MySQL.
Andmebaaside ühenduvuse põhitõed
ASP.NET-il on võime töötada enamiku andmebaasidega, millest kõige levinumad on Oracle ja Microsoft SQL Server. Kuid iga andmebaasi puhul on nende kõigiga töötamise loogika enamasti sama.
Meie näidetes vaatleme, kuidas töötada koos Microsoft SQL Server meie andmebaasina. Õppimise eesmärgil saab alla laadida ja kasutada Microsoft SQL Server Express Edition. See on tasuta andmebaasitarkvara, mida pakub Microsoft.
Andmebaasidega töötamisel on järgmised mõisted kõigis andmebaasides ühised:
- Ühendus – Andmebaasis olevate andmetega töötamiseks on esimene ilmselge samm ühenduse loomine. Ühendus andmebaasiga koosneb tavaliselt allpool nimetatud parameetritest.
- Andmebaasi nimi või andmeallikas – Esimene oluline parameeter on andmebaasi nimi. Iga ühendus saab korraga töötada ainult ühe andmebaasiga.
- volikiri – Järgmine oluline aspekt on kasutajanimi ja parool. Neid kasutatakse andmebaasiga ühenduse loomiseks.
- Valikulised parameetrid – Saate määrata valikulised parameetrid selle kohta, kuidas .NET peaks andmebaasiühendusega tegelema. Näiteks saab määrata parameetri, kui kaua ühendus peaks aktiivseks jääma.
- Andmete valimine andmebaasist – Kui ühendus on loodud, laaditakse andmebaasist andmed alla. ASP.NET-il on võimalus käivitada andmebaasi suhtes SQL-käsk select. SQL-lauset saab kasutada andmete toomiseks andmebaasi konkreetsest tabelist.
- Andmete sisestamine andmebaasi – ASP.NET-i kasutatakse kirjete lisamiseks andmebaasi. Iga rea väärtused, mis tuleb andmebaasi lisada, on ASP.NET-is määratud.
- Andmete värskendamine andmebaasi – ASP.NET-i saab kasutada ka andmebaasis olemasolevate kirjete värskendamiseks. ASP.NET-is saab määrata uued väärtused iga rea jaoks, mida tuleb andmebaasi värskendada.
- Andmete kustutamine andmebaasist – ASP.NET-i saab kasutada ka kirjete kustutamiseks andmebaasist. Koodi kirjutatakse konkreetse rea kustutamiseks andmebaasist.
Nüüd, kui oleme iga operatsiooni teoreetilise osa üle vaadanud, vaatame, kuidas ASP.NET-is andmebaasioperatsioone teha.
ASP.NET andmebaasiühendused
Vaatame nüüd koodi, mida tuleb andmebaasiga ühenduse loomiseks alles hoida. Meie näites loome ühenduse andmebaasiga, mille nimi on Demodb. Andmebaasiga ühenduse loomiseks kasutatavad volitused on toodud allpool:
- Kasutajanimi – sa
- Parool – demo123
Töötame oma praeguse veebirakendusega, mis loodi eelmistes osades.
- Alustage sellele andmebaasitoimingute lisamist.
- Meie näide vaatleb lihtsa ühenduse loomist. See ühendus luuakse Demodb andmebaasiga. Seda tehakse lehe esmakordsel käivitamisel.
- Kui ühendus on loodud, saadetakse kasutajale teade. Teade näitab, et ühendus on loodud.
Selle saavutamiseks järgigem allpool mainitud samme.
Step 1) Kõigepealt veendugem, et teie veebirakendus (DemoApplication) on Visual Studios avatud. Double- andmebaasiühenduse koodi sisestamiseks klõpsake faili demo.aspx.cs.
Step 2) Lisage allolev kood, mida kasutatakse andmebaasiga ühenduse loomiseks.
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 Selgitus:-
- Esimene samm on muutujate loomine. Neid kasutatakse ühendusstringi ja SQL Serveri andmebaasiga ühenduse loomiseks.
- Järgmine samm on ühendusstringi loomine. Ühendusstring koosneb järgmistest osadest:
- Andmeallikas – see on serveri nimi, kus andmebaas asub. Meie puhul asub see masinal nimega WIN-50GP30FGO75.
- Algkataloogi kasutatakse andmebaasi nime määramiseks.
- Kasutajatunnus ja parool on andmebaasiga ühenduse loomiseks vajalikud volitused.
- Järgmisena määrame ühendusstringi muutujale cnn.
- Muutuja cnn on tüüpi SqlConnection. Seda kasutatakse andmebaasiga ühenduse loomiseks.
- SqlConnection on ASP.NET-i klass, mida kasutatakse andmebaasiga ühenduse loomiseks.
- Selle klassi kasutamiseks tuleb esmalt luua selle klassi objekt. Seega loome siin muutuja nimega cnn, mis on tüübiga SqlConnection.
- Järgmisena kasutame cnn muutuja Open meetodit, et avada ühendus andmebaasiga. Kuvame kasutajale teate, et ühendus on loodud. Seda tehakse meetodi Response.Write abil. Seejärel sulgeme ühenduse andmebaasiga.
Kui ülaltoodud kood on seatud ja projekt käivitatakse, kasutades Visual Studio, saate alloleva väljundi. Kui vorm kuvatakse, klõpsake nuppu Ühenda.
Väljund:-
Brauseris kuvatav väljundteade näitab, et ühendus andmebaasiga on loodud.
ASP.NETi lugemise andmebaas SqlDataReaderi abil
ASP.NET-i abil ligipääsetud andmete kuvamiseks eeldame, et meie andmebaasis on järgmised esemed.
- Tabel nimega demotb. Seda tabelit kasutatakse erinevate õpetuste ID-de ja nimede salvestamiseks.
- Tabelis on kaks veergu, üks nimega ÕpetuseID ja teine nimega ÕpetuseNimi.
- Praegu on tabelis kaks rida, nagu allpool näidatud.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Muudame koodi nii, et saaksime neid andmeid päringuga esitada ja teavet veebilehel endal kuvada. Pange tähele, et sisestatud kood on andmesideühenduse mooduli jaoks kirjutatu jätk.
Step 1) Jagame koodi kaheks osaks:
- Esimene osa on valikulause loomine. Seda kasutatakse andmebaasist andmete lugemiseks.
- Seejärel käivitame andmebaasi suhtes valikulause. See hangib vastavalt kõik tabeli read.
Code Selgitus:-
- Esimene samm on järgmiste muutujate loomine:
- SqlCommand – SqlCommand on C#-s defineeritud klass. Seda klassi kasutatakse andmebaasi lugemise ja kirjutamise toimingute tegemiseks.
- DataReaderi objekti kasutatakse kõigi SQL-päringuga määratud andmete hankimiseks. Seejärel saame andmelugeja abil lugeda ükshaaval kõik tabeli read.
- Seejärel defineerime kaks stringimuutujat. Üks on sql, mis hoiab meie SQL-käsklust. Teine on väljund, mis sisaldab kõiki tabeli väärtusi.
- Järgmine samm on SQL-lause defineerimine. Meie puhul on see „Select TutorialID, TutorialName from demotb“. See toob kõik read tabelist demotb.
- Järgmisena loome käsuobjekti, mida kasutatakse SQL-lause täitmiseks andmebaasis. SQL-käskluses peate edastama ühenduse objekti ja SQL-stringi.
- Järgmisena käivitame andmelugeja käsu, mis hangib kõik read demotb tabelist.
- Nüüd, kui meil on kõik tabeli read kaasas, vajame mehhanismi ridadele ükshaaval juurde pääsemiseks.
- Selleks kasutame while-lauset, et pääseda andmelugeja ridadele ükshaaval juurde.
- Seejärel kasutame meetodit GetValue, et saada TutorialID ja TutorialName väärtused.
Step 2) Viimases etapis kuvame väljundi kasutajale. Seejärel sulgeme kõik andmebaasi toimingutega seotud objektid.
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 Selgitus:-
- Jätkame koodi Output muutuja väärtuse kuvamisega. Seda tehakse Response.Write meetodi abil.
- Lõpuks sulgeme kõik meie andmebaasi toimingutega seotud objektid. Pidage meeles, et see on alati hea tava.
Kui ülaltoodud kood on seatud ja projekt käivitatakse Visual Studio abil, saate alloleva väljundi.
Väljund:-
Väljundist on selgelt näha, et programm suutis väärtused andmebaasist kätte saada. Seejärel kuvatakse andmed kasutajale brauseris.
Sisestage andmebaasi kirje, kasutades käsku InsertCommand
Nii nagu andmetele juurdepääsu puhul, on ka ASP.NET-il võimalus andmebaasi kirjeid lisada. Võtame sama tabeli struktuuri, mida kasutatakse kirjete lisamiseks.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Muudame vormil olevat koodi nii, et saaksime tabelisse lisada järgmise rea:
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net |
Step 1) Esimese sammuna lisame oma programmi järgmise koodi. Allolevat koodijuppi kasutatakse kirje lisamiseks meie andmebaasi.
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 Selgitus:-
- Esimene samm on järgmiste muutujate loomine:
- SqlCommand – Seda andmetüüpi kasutatakse objektide määratlemiseks, mis teostavad andmebaasis SQL-operatsioone. See objekt sisaldab SQL-käsku, mis käivitatakse meie SQL Serveri andmebaasis.
- DataAdapter objekti kasutatakse SQL-käskude sisestamiseks, kustutamiseks ja värskendamiseks.
- Seejärel defineerime stringmuutuja, milleks on sql, et hoida meie SQL-käsu stringi.
- Järgmine samm on SQL-lause defineerimine. Meie puhul väljastame sisestuslause. See lisab kirjed TutorialID=3 ja TutorialName=VB.Net.
- Järgmisena loome käsuobjekti, mida kasutatakse SQL-lause täitmiseks andmebaasis. SQL-käskluses peate edastama ühenduse objekti ja SQL-stringi.
- Meie andmeadapteri käsus:
- Seostage adapteriga käsk insert SQL.
- Seejärel käivitage ExecuteNonQuery meetod. Seda kasutatakse sisestuslause käivitamiseks meie andmebaasis.
- Meetodit ExecuteNonQuery kasutatakse järgmistes valdkondades: C# anda andmebaasi vastu DML-i avaldusi (sisestada, kustutada ja värskendada).
- Lõpuks sulgeme kõik meie andmebaasi toimingutega seotud objektid. Pidage meeles, et see on alati hea tava.
Step 2) Teise sammuna lisame sama koodi nagu andmetele juurdepääsu osas. See kuvab brauseris hiljutised tabeli andmed. Selleks lisame alloleva koodi faili 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(); } } }
Kui ülaltoodud kood on seatud ja projekt Visual Studio's käivitatud, saate alloleva väljundi.
Väljund:-
Brauseriaknas näete, et rida on andmebaasi edukalt lisatud.
Värskendage andmebaasi kirjet kasutades UpdateCommand
ASP.NET-il on võimalus andmebaasis olemasolevaid kirjeid uuendada. Võtame sama tabeli struktuuri, mida kasutati ülaltoodud näites kirjete lisamiseks.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Muudame vormil koodi nii, et saaksime järgmist rida uuendada. Vana rea väärtus on TutorialID ehk 3 ja TutorialName ehk VB.Net, mille uuendame väärtuseks „VB.Net Complete”, samas kui TutorialID rea väärtus jääb samaks.
Vana rida
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net |
Uus rida
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net on täielik |
Step 1) Esimese sammuna lisame oma programmi järgmise koodi. Allolevat koodijuppi kasutatakse meie andmebaasis olemasoleva kirje värskendamiseks.
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 Selgitus:-
- Esimene samm on järgmiste muutujate loomine:
- SqlCommand – Seda andmetüüpi kasutatakse objektide määratlemiseks SQL-operatsioonide teostamiseks andmebaasis. See objekt sisaldab SQL-käsku, mis käivitatakse meie SQL Serveri andmebaasis.
- DataAdapter objekti kasutatakse SQL-käskude sisestamiseks, kustutamiseks ja värskendamiseks.
- Seejärel defineerime stringmuutuja, milleks on sql, et hoida meie SQL-käsu stringi.
- Järgmine samm on SQL-lause defineerimine. Meie puhul väljastame värskenduslause. See uuendab TutorialName väärtuseks „VB.Net Complete“. TutorialID jääb samaks ja selle väärtus on 3.
- Järgmisena loome käsuobjekti. Seda kasutatakse SQL-lause käivitamiseks andmebaasis. SQL-käsus edastatakse ühendusobjekt ja SQL-string.
- Meie andmeadapteri käsus seostame SQL-käsu meie adapteriga. Seejärel käivitame meetodi ExecuteNonQuery. Seda kasutatakse värskenduslause käivitamiseks meie andmebaasis.
- Lõpuks sulgeme kõik meie andmebaasi toimingutega seotud objektid. Pidage meeles, et see on alati hea tava.
Step 2) Teise sammuna lisame sama koodi nagu andmetele juurdepääsu osas. See kuvab brauseris hiljutised tabeli andmed. Selleks lisame alloleva koodi.
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(); } } }
Kui ülaltoodud kood on seatud ja projekt Visual Studio abil käivitatud, saate alloleva väljundi.
Väljund:-
Brauseriaknas näete, et rida on andmebaasis edukalt värskendatud.
Andmebaasikirje kustutamine käsu DeleteCommand abil
ASP.NET saab andmebaasist olemasolevaid kirjeid kustutada. Võtame sama tabeli struktuuri, mida kasutati ülaltoodud näites kirjete kustutamiseks.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net on täielik |
Muutame vormil olevat koodi nii, et saaksime järgmise rea kustutada:
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net on täielik |
Step 1) Esimese sammuna lisame oma programmi järgmise koodi. Allolevat koodijuppi kasutatakse olemasoleva kirje kustutamiseks meie andmebaasist.
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 Selgitus:-
- Selle koodi peamine erinevus seisneb selles, et nüüd väljastame delete SQL-lause. Kustutuslauset kasutatakse demotb-tabeli rea kustutamiseks, mille TutorialID väärtus on 3.
- Meie andmeadapteri käsus seostame delete SQL-käsu meie adapteriga. Samuti kasutame ExecuteNonQuery meetodit, mida kasutatakse delete-lause käivitamiseks meie andmebaasis.
Step 2) Teise sammuna lisame sama koodi nagu andmetele juurdepääsu osas. See kuvab brauseris hiljutised tabeli andmed. Selleks lisame alloleva koodi.
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(); } } }
Kui ülaltoodud kood on seatud ja projekt Visual Studio abil käivitatud, saate alloleva väljundi.
Väljund:-
ASP.NET-i juhtelementide ühendamine andmetega
Oleme näinud, kuidas ASP.NET-i käske (nt SqlCommand ja SqlDataReader) kasutada andmebaasist andmete toomiseks. Samuti nägime, kuidas tabeli iga rida lugeda ja veebilehel kuvada.
Juhtelementide otse tabeli erinevate väljadega sidumiseks on olemas meetodid. Praegu saab ASP.NET-rakendusega siduda ainult järgmisi juhtelemente:
- VaataBoxnimekiri
- RadioButtonList
- Rippmenüü
- nimekiriBox
Vaatame näidet, kuidas ASP.NET-is juhtelementide sidumist kasutada. Siin võtame loendi.Box näide. Oletame, et meil on andmebaasis järgmised andmed.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net on täielik |
Kasutagem nimekirjaBox kontrolli ja vaadake, kuidas see saab meie demotb tabelist automaatselt andmeid kätte. Selle saavutamiseks järgigem allpool nimetatud samme.
Step 1) Loo põhiline veebivorm. Lohistage Visual Studio tööriistakastist kaks komponenti – sildid ja loend.BoxSeejärel tehke järgmised alajaotused:
- Sisesta esimese sildi tekstiväärtus kujule TutorialID.
- Sisesta teise sildi tekstiväärtus kujule ÕpetuseNimi.
Allpool on näha, kuidas vorm pärast ülaltoodud toimingute tegemist välja näeks.
Step 2) Järgmine samm on iga loendi ühendamise alustamine.Box andmebaasi tabelisse.
- Esmalt klõpsake loendilBox TutorialID jaoks. See avab juhtelemendi kõrvale uue dialoogiboksi.
- Klõpsake dialoogiboksis valikul Vali andmeallikas.
Step 3) Seejärel kuvatakse dialoogiboks. Seda saab kasutada uue andmeallika loomiseks. Andmeallikas esindab ühendust andmebaasiga. Valige suvand „Uus andmeallikas”.
Step 4) Pärast uue andmeallika valimist viimases etapis kuvatakse allolev ekraan. Siin peame mainima andmeallika tüüpi, mida soovime luua.
- Valige andmebaasi suvand SQL Serveri andmebaasiga töötamiseks.
- Nüüd peame andma oma andmeallikale nime. Siin anname sellele nime DemoDataSource.
- Lõpuks klõpsame järgmisele ekraanile liikumiseks nuppu OK.
Step 5) Nüüd peame looma ühenduse oma andmebaasiga. Järgmisel ekraanil klõpsake nuppu „Uus ühendus“.
Step 6) Järgmisena peate andmebaasiga ühenduse loomiseks lisama mandaadid.
- Valige serveri nimi, millel SQL Server asub.
- Andmebaasiga ühenduse loomiseks sisestage kasutajatunnus ja parool.
- Valige andmebaasiks demotb.
- Klõpsake nuppu OK.
Step 7) Järgmisel ekraanil näete demotb tabelit. Vaikesätte kinnitamiseks klõpsake lihtsalt nuppu „Järgmine“.
Step 8) Nüüd saate ühendust järgmisel ekraanil testida.
- Klõpsake nupul „Testi päringut“, et näha, kas saate tabelist väärtused kätte.
- Nõustaja lõpuleviimiseks klõpsake nuppu Lõpeta.
Step 9) Nüüd viimasel ekraanil saate klõpsata nupul OK. See seob nüüd õpetuste ID-de loendi.Box demotb tabelis olevale TutorialID väljanimele.
Step 10) Nüüd on aeg siduda TutorialName ListBox väljale ÕpetuseNimi.
- Esmalt klõpsa ÕpetuseNimiloendilBox.
- Seejärel vali loendi kõrval kuvatavas dialoogiboksis andmeallikas.Box.
Step 11) DemoDataSource'i näete juba järgmisel ekraanil andmeallika valimisel.
- Valige demoandmete allikas.
- Klõpsake nuppu OK.
Kui kõik ülaltoodud toimingud viiakse läbi nii, nagu näidatud, saate allpool nimetatud väljundi.
Väljund:-
Väljundist on näha, et loendBoxes kuvavad vastavalt Õpetuse ID ja ÕpetuseNime.




























