Inserare, Actualizare, Ștergere: Conexiune la baza de date ASP.NET
⚡ Rezumat inteligent
ASP.NET se conectează la baze de date precum SQL Server și Oracle prin ADO.NET, utilizând clasele SqlConnection, SqlCommand, SqlDataReader și SqlDataAdapter pentru a deschide o conexiune și a executa operațiuni de selectare, inserare, actualizare și ștergere asupra înregistrărilor stocate.
Accesarea datelor dintr-o bază de date este un aspect important al oricărui limbaj de programare. Este necesar ca orice limbaj de programare să aibă capacitatea de a lucra cu baze de date.
ASP.NET are capacitatea de a lucra cu diferite tipuri de baze de date. Poate funcționa cu cele mai comune baze de date, cum ar fi Oracle și Microsoft SQL Server.
De asemenea, are capacitatea de a lucra cu noi forme de baze de date, cum ar fi MongoDB și MySQL.
Fundamentele conectivității bazelor de date
ASP.NET are capacitatea de a lucra cu majoritatea bazelor de date, cele mai comune fiind Oracle și Microsoft SQL Server. Dar cu fiecare bază de date, logica din spatele lucrului cu toate acestea este în mare parte aceeași.
În exemplele noastre, ne vom uita la lucrul cu Microsoft SQL Server ca baza noastră de date. În scopuri de învățare, se poate descărca și utiliza Microsoft SQL Server Ediția Express. Acesta este un software gratuit de baze de date furnizat de Microsoft.
În lucrul cu baze de date, următoarele concepte sunt comune tuturor bazelor de date:
- Conexiune – Pentru a lucra cu datele dintr-o bază de date, primul pas evident este conectarea. Conexiunea la o bază de date constă în mod normal din parametrii menționați mai jos.
- Numele bazei de date sau Sursa de date – Primul parametru important este numele bazei de date. Fiecare conexiune poate funcționa doar cu o singură bază de date la un moment dat.
- Studii si calificari – Următorul aspect important este numele de utilizator și parola. Acestea sunt folosite pentru a stabili o conexiune la baza de date.
- Parametri opționali – Puteți specifica parametri opționali privind modul în care .NET ar trebui să gestioneze conexiunea la baza de date. De exemplu, se poate specifica un parametru pentru durata de timp în care conexiunea ar trebui să rămână activă.
- Selectarea datelor din baza de date – Odată ce conexiunea este stabilită, datele sunt preluate din baza de date. ASP.NET are capacitatea de a executa comanda SQL select asupra bazei de date. Instrucțiunea SQL poate fi utilizată pentru a prelua date dintr-un tabel specific din baza de date.
- Inserarea datelor în baza de date – ASP.NET este utilizat pentru inserarea înregistrărilor în baza de date. Valorile pentru fiecare rând care trebuie inserat în baza de date sunt specificate în ASP.NET.
- Actualizarea datelor în baza de date – ASP.NET poate fi utilizat și pentru actualizarea înregistrărilor existente în baza de date. Valori noi pot fi specificate în ASP.NET pentru fiecare rând care trebuie actualizat în baza de date.
- Ștergerea datelor dintr-o bază de date – ASP.NET poate fi folosit și pentru a șterge înregistrări din baza de date. Codul este scris pentru a șterge un anumit rând din baza de date.
Acum, că am văzut partea teoretică a fiecărei operații, haideți să vedem cum se efectuează operațiuni cu bazele de date în ASP.NET.
Conexiuni la baza de date ASP.NET
Să analizăm acum codul care trebuie păstrat pentru a crea o conexiune la o bază de date. În exemplul nostru, ne vom conecta la o bază de date numită Demodb. Datele de autentificare utilizate pentru conectarea la baza de date sunt date mai jos:
- Nume de utilizator – sa
- Parola – demo123
Să lucrăm cu aplicația web actuală creată în secțiunile anterioare.
- Începeți să adăugați operațiuni de bază de date la acesta.
- Exemplul nostru analizează stabilirea unei conexiuni simple. Această conexiune se face la baza de date Demodb. Acest lucru se face la prima lansare a paginii.
- Când conexiunea este stabilită, un mesaj va fi trimis utilizatorului. Mesajul va indica faptul că conexiunea a fost stabilită.
Să urmăm pașii menționați mai jos pentru a realiza acest lucru.
Pas 1) Să ne asigurăm mai întâi că aveți aplicația web (DemoApplication) deschisă în Visual Studio. Double-faceți clic pe fișierul demo.aspx.cs pentru a introduce codul pentru conexiunea la baza de date.
Pas 2) Adăugați codul de mai jos care va fi folosit pentru a stabili o conexiune la baza de date.
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 Explicaţie:-
- Primul pas este crearea variabilelor. Acestea vor fi folosite pentru a crea șirul de conexiune și conexiunea la baza de date SQL Server.
- Următorul pas este crearea efectivă a șirului de conexiune. Șirul de conexiune este format din următoarele părți:
- Sursă de date – Acesta este numele serverului pe care se află baza de date. În cazul nostru, aceasta se află pe o mașină numită WIN-50GP30FGO75.
- Catalogul inițial este utilizat pentru a specifica numele bazei de date.
- ID-ul de utilizator și parola sunt acreditările necesare pentru conectarea la baza de date.
- Apoi, atribuim șirul de conexiune variabilei cnn.
- Variabila cnn este de tip SqlConnection. Acesta este folosit pentru a stabili o conexiune la baza de date.
- SqlConnection este o clasă din ASP.NET utilizată pentru a crea o conexiune la o bază de date.
- Pentru a utiliza această clasă, trebuie mai întâi să creați un obiect al acestei clase. Prin urmare, aici creăm o variabilă numită cnn, care este de tip SqlConnection.
- Apoi, folosim metoda Open a variabilei cnn pentru a deschide o conexiune la baza de date. Afișăm un mesaj utilizatorului că conexiunea a fost stabilită. Acest lucru se face prin intermediul metodei Response.Write. Apoi închidem conexiunea la baza de date.
Când codul de mai sus este setat și proiectul este executat folosind Visual Studio, veți obține rezultatul de mai jos. Odată ce formularul este afișat, faceți clic pe butonul Conectare.
Ieșire: -
Mesajul de ieșire afișat în browser va arăta că conexiunea la baza de date este realizată.
ASP.NET Citiți baza de date folosind SqlDataReader
Pentru a afișa datele accesate folosind ASP.NET, să presupunem următoarele artefacte în baza noastră de date.
- Un tabel numit demotb. Acest tabel va fi folosit pentru a stoca ID-ul și numele diferitelor tutoriale.
- Tabelul va avea două coloane, una numită TutorialID și cealaltă numită TutorialName.
- Pentru moment, tabelul va avea două rânduri, așa cum se arată mai jos.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Să modificăm codul astfel încât să putem interoga aceste date și să afișăm informațiile chiar pe pagina web. Rețineți că codul introdus este în continuarea celui scris pentru modulul de conexiune de date.
Pas 1) Să împărțim codul în două părți:
- Prima parte va fi construirea instrucțiunii noastre de selecție. Aceasta va fi utilizată pentru a citi datele din baza de date.
- Apoi vom executa instrucțiunea select în baza de date. Aceasta va prelua toate rândurile tabelului în mod corespunzător.
Code Explicaţie:-
- Primul pas este crearea următoarelor variabile:
- SqlCommand – SqlCommand este o clasă definită în C#. Această clasă este utilizată pentru a efectua operațiuni de citire și scriere în baza de date.
- Obiectul DataReader este folosit pentru a obține toate datele specificate de interogarea SQL. Putem apoi citi toate rândurile tabelului unul câte unul folosind cititorul de date.
- Apoi definim două variabile de tip șir de caractere. Una este sql, care conține șirul de comandă SQL. Următoarea este Output, care va conține toate valorile tabelului.
- Următorul pas este definirea efectivă a instrucțiunii SQL. În cazul nostru, este „Select TutorialID, TutorialName from demotb”. Aceasta va prelua toate rândurile din tabelul demotb.
- Apoi, creăm obiectul de comandă care este folosit pentru a executa instrucțiunea SQL în baza de date. În comanda SQL, trebuie să treceți obiectul de conexiune și șirul SQL.
- Apoi, executăm comanda data reader, care va prelua toate rândurile din tabela demotb.
- Acum, că avem toate rândurile tabelului la noi, avem nevoie de un mecanism pentru a accesa rândurile unul câte unul.
- Pentru aceasta, folosim instrucțiunea while pentru a accesa rândurile din cititorul de date pe rând.
- Apoi folosim metoda GetValue pentru a obține valoarea TutorialID și TutorialName.
Pas 2) În pasul final, afișăm rezultatul utilizatorului. Apoi închidem toate obiectele legate de operațiunile din baza de date.
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 Explicaţie:-
- Continuăm codul nostru afișând valoarea variabilei Output. Acest lucru se face folosind metoda Response.Write.
- În final, închidem toate obiectele legate de operațiunile din baza noastră de date. Rețineți că aceasta este întotdeauna o practică bună.
Când codul de mai sus este setat și proiectul este rulat folosind Visual Studio, veți obține rezultatul de mai jos.
Ieșire: -
Din rezultat, puteți vedea clar că programul a putut obține valorile din baza de date. Datele sunt apoi afișate utilizatorului în browser.
Inserați înregistrarea bazei de date folosind InsertCommand
La fel ca accesarea datelor, ASP.NET are capacitatea de a insera înregistrări în baza de date. Să luăm aceeași structură de tabel utilizată pentru inserarea înregistrărilor.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Să modificăm codul din formularul nostru astfel încât să putem insera următorul rând în tabel:
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net |
Pas 1) Ca prim pas, să adăugăm următorul cod în programul nostru. Fragmentul de cod de mai jos va fi utilizat pentru a insera o înregistrare în baza noastră de date.
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 Explicaţie:-
- Primul pas este crearea următoarelor variabile:
- SqlCommand – Acest tip de date este utilizat pentru a defini obiecte care efectuează operațiuni SQL asupra unei baze de date. Acest obiect va conține comanda SQL care va rula asupra bazei de date SQL Server.
- Obiectul DataAdapter este utilizat pentru a executa comenzi SQL de inserare, ștergere și actualizare.
- Apoi definim o variabilă de tip șir de caractere, care este sql, pentru a conține șirul de comandă SQL.
- Următorul pas este definirea efectivă a instrucțiunii SQL. În cazul nostru, emitem o instrucțiune de inserare. Aceasta va insera înregistrarea TutorialID=3 și TutorialName=VB.Net.
- Apoi, creăm obiectul de comandă care este folosit pentru a executa instrucțiunea SQL în baza de date. În comanda SQL, trebuie să treceți obiectul de conexiune și șirul SQL.
- În comanda adaptorului nostru de date:
- Asociați comanda insert SQL la adaptor.
- Apoi, executați metoda ExecuteNonQuery. Aceasta este utilizată pentru a executa instrucțiunea de inserare în baza noastră de date.
- Metoda ExecuteNonQuery este utilizată în C# să emită orice instrucțiuni DML (operație de inserare, ștergere și actualizare) împotriva bazei de date.
- În final, închidem toate obiectele legate de operațiunile din baza noastră de date. Rețineți că aceasta este întotdeauna o practică bună.
Pas 2) Ca al doilea pas, să adăugăm același cod ca în secțiunea de accesare a datelor. Acesta este pentru a afișa datele recente din tabel în browser. Pentru aceasta, vom adăuga codul de mai jos în fișierul 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(); } } }
Când codul de mai sus este setat și proiectul este executat în Visual Studio, veți obține rezultatul de mai jos.
Ieșire: -
În fereastra browserului, veți vedea că rândul a fost introdus cu succes în baza de date.
Actualizați înregistrarea bazei de date utilizând UpdateCommand
ASP.NET are capacitatea de a actualiza înregistrările existente într-o bază de date. Să luăm aceeași structură de tabel utilizată mai sus pentru exemplul de inserare a înregistrărilor.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Să modificăm codul din formularul nostru astfel încât să putem actualiza următorul rând. Valoarea veche a rândului este TutorialID ca 3 și TutorialName ca VB.Net, pe care o vom actualiza la „VB.Net Complete”, în timp ce valoarea rândului pentru TutorialID va rămâne aceeași.
Rând vechi
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net |
Rând nou
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net Complet |
Pas 1) Ca prim pas, să adăugăm următorul cod în programul nostru. Fragmentul de cod de mai jos va fi utilizat pentru a actualiza o înregistrare existentă în baza noastră de date.
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 Explicaţie:-
- Primul pas este crearea următoarelor variabile:
- SqlCommand – Acest tip de date este utilizat pentru a defini obiecte care să efectueze operațiuni SQL asupra unei baze de date. Acest obiect va conține comanda SQL care va rula asupra bazei de date SQL Server.
- Obiectul DataAdapter este utilizat pentru a executa comenzi SQL de inserare, ștergere și actualizare.
- Apoi definim o variabilă de tip șir de caractere, care este sql, pentru a conține șirul de comandă SQL.
- Următorul pas este definirea efectivă a instrucțiunii SQL. În cazul nostru, emitem o instrucțiune de actualizare. Aceasta va actualiza TutorialName la „VB.Net Complete”. TutorialID va rămâne neschimbat, iar valoarea va fi 3.
- Apoi, creăm obiectul de comandă. Acesta este utilizat pentru a executa instrucțiunea SQL în baza de date. În comanda SQL, transmiteți obiectul de conexiune și șirul SQL.
- În comanda adaptorului nostru de date, asociem comanda SQL adaptorului nostru. Apoi, lansăm metoda ExecuteNonQuery. Aceasta este utilizată pentru a executa instrucțiunea de actualizare pentru baza noastră de date.
- În final, închidem toate obiectele legate de operațiunile din baza noastră de date. Rețineți că aceasta este întotdeauna o practică bună.
Pas 2) Ca al doilea pas, să adăugăm același cod ca în secțiunea de accesare a datelor. Acesta este pentru a afișa datele recente din tabel în browser. Pentru aceasta, vom adăuga codul de mai jos.
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(); } } }
Când codul de mai sus este setat și proiectul este executat folosind Visual Studio, veți obține rezultatul de mai jos.
Ieșire: -
În fereastra browserului, veți vedea că rândul a fost actualizat cu succes în baza de date.
Ștergeți înregistrarea bazei de date folosind DeleteCommand
ASP.NET poate șterge înregistrări existente dintr-o bază de date. Să luăm aceeași structură de tabel utilizată mai sus pentru exemplul de ștergere a înregistrărilor.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complet |
Să modificăm codul din formularul nostru astfel încât să putem șterge următorul rând:
| TutorialID | TutorialName |
|---|---|
| 3 | VB.Net Complet |
Pas 1) Ca prim pas, să adăugăm următorul cod în programul nostru. Fragmentul de cod de mai jos va fi utilizat pentru a șterge o înregistrare existentă în baza noastră de date.
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 Explicaţie:-
- Diferența cheie în acest cod este că acum emitem instrucțiunea SQL delete. Instrucțiunea delete este utilizată pentru a șterge rândul din tabelul demotb în care TutorialID are valoarea 3.
- În comanda adaptorului nostru de date, asociem comanda SQL delete adaptorului nostru. De asemenea, folosim metoda ExecuteNonQuery, care este utilizată pentru a executa instrucțiunea delete în baza noastră de date.
Pas 2) Ca al doilea pas, să adăugăm același cod ca în secțiunea de accesare a datelor. Acesta este pentru a afișa datele recente din tabel în browser. Pentru aceasta, vom adăuga codul de mai jos.
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(); } } }
Când codul de mai sus este setat și proiectul este executat folosind Visual Studio, veți obține rezultatul de mai jos.
Ieșire: -
Conectarea controalelor ASP.NET la date
Am văzut cum putem folosi comenzi ASP.NET precum SqlCommand și SqlDataReader pentru a prelua date dintr-o bază de date. De asemenea, am văzut cum putem citi fiecare rând al tabelului și îl putem afișa pe pagina web.
Există metode disponibile pentru a lega controalele direct la diferite câmpuri din tabel. În prezent, doar următoarele controale pot fi legate la o aplicație ASP.NET:
- VerificaBoxListă
- RadioButtonList
- Lista verticală
- ListăBox
Să vedem un exemplu despre cum putem utiliza legătura de control în ASP.NET. Aici vom lua o listăBox exemplu. Să presupunem că avem următoarele date în baza noastră de date.
| TutorialID | TutorialName |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Complet |
Să folosim ListaBox control și să vedem cum poate prelua automat datele din tabelul nostru demotb. Să urmăm pașii menționați mai jos pentru a realiza acest lucru.
Pas 1) Construiți formularul web de bază. Din caseta de instrumente din Visual Studio, glisați și plasați 2 componente – etichete și listă.Boxes. Apoi, efectuați următorii subpași:
- Pune valoarea text a primei etichete ca TutorialID.
- Pune valoarea text a celei de-a doua etichete ca TutorialName.
Mai jos este cum ar arăta formularul după parcurgerea pașilor menționați mai sus.
Pas 2) Următorul pas este să începeți conectarea fiecărei liste.Box la tabelul bazei de date.
- Mai întâi, faceți clic pe ListăBox pentru TutorialID. Aceasta va afișa o altă casetă de dialog în lateralul controlului.
- Din caseta de dialog, faceți clic pe opțiunea Alegeți sursa de date.
Pas 3) Veți fi apoi afișată o casetă de dialog. Aceasta poate fi utilizată pentru a crea o nouă sursă de date. Sursa de date va reprezenta o conexiune la baza de date. Alegeți opțiunea Sursă de date nouă.
Pas 4) Ecranul de mai jos va fi solicitat după alegerea noii surse de date în ultimul pas. Aici trebuie să menționăm tipul de sursă de date pe care dorim să o creăm.
- Alegeți opțiunea de bază de date pentru a lucra cu o bază de date SQL Server.
- Acum trebuie să dăm un nume sursei noastre de date. Aici îi dăm un nume DemoDataSource.
- În final, facem clic pe butonul OK pentru a trece la ecranul următor.
Pas 5) Acum trebuie să creăm o conexiune la baza noastră de date. În ecranul următor, faceți clic pe butonul Conexiune nouă.
Pas 6) Apoi, trebuie să adăugați acreditările pentru a vă conecta la baza de date.
- Alegeți numele serverului pe care se află SQL Server.
- Introduceți ID-ul de utilizator și parola pentru a vă conecta la baza de date.
- Alegeți baza de date ca demotb.
- Faceți clic pe butonul OK.
Pas 7) Pe ecranul următor, veți putea vedea tabelul demotb. Pur și simplu faceți clic pe butonul Următorul pentru a accepta setările implicite.
Pas 8) Acum veți putea testa conexiunea pe următorul ecran.
- Faceți clic pe butonul Test Query pentru a vedea dacă puteți obține valorile din tabel.
- Faceți clic pe butonul Terminare pentru a finaliza expertul.
Pas 9) Acum, pe ecranul final, puteți face clic pe butonul OK. Aceasta va lega acum lista TutorialID.Box la numele câmpului TutorialID din tabela demotb.
Pas 10) Acum este momentul să legăm lista TutorialName.Box în câmpul NumeTutorial.
- Mai întâi, faceți clic pe lista TutorialName.Box.
- Apoi, alegeți din Sursă de date în caseta de dialog care apare în partea laterală a Listei.Box.
Pas 11) Veți vedea deja DemoDataSource când alegeți sursa de date în ecranul următor.
- Alegeți DemoDataSource.
- Faceți clic pe butonul OK.
Dacă toți pașii de mai sus sunt executați așa cum se arată, veți obține rezultatul menționat mai jos.
Ieșire: -
Din rezultat, puteți vedea că ListaBoxafișează TutorialID și respectiv TutorialName.




























