..


Link-uri sponsorizate

Gestionarea conexiunilor la baze de date cu ADO.NET

In lecţia anterioară am văzut cum de a lega o colecţie statică (de asemenea, cunoscut sub numele de in-memory) la diferite server-side de control. Deşi acest tip de operaţiune poate fi utilă în anumite contexte, cu toate acestea, de multe ori vine necesitatea de a lega diferitelor controale la colecţii de elemente din alte surse, de multe ori dintr-o bază de date.

În plus faţă de inclusiv bibliotecile de clasă pentru dezvoltarea de aplicatii desktop (Windows Forms), precum şi pentru gestionarea de cereri HTTP (ASP.NET),. NET Framework include, de asemenea, o bibliotecă de care acceptă conectarea la o mare varietate de baze de date şi este numit ADO.NET (Obiecte de date active. NET). Această tehnologie se bazează pe trei funcţii principale: conexiune la o bază de date, interogarea unei baze de date, şi gestionarea rezultatelor.

Când doriţi să interacţioneze cu o bază de date va trebui să se conecteze la ea. Conexiunea necesită identificarea de locaţia bazei de date, dar poate cere, de asemenea, pentru managementul securităţii şi sejururi alte complexe. Toate aceste elemente sunt tratate ca parte a procesului de conectare la o bază de date. Informaţiile de conectare este de obicei trecut ca un şir de caractere, al cărui conţinut sunt utilizate pentru setarea parametrilor diferite.

În timp ce în trecut aţi avut de a scrie cod manual pentru a accesa o bază de date prin ADO.NET, cu precizarea tipului de date pe care doriţi să vă conectaţi şi setează automat proprietăţile sunt potrivite pentru acest tip de conexiune.

Există mai multe tipuri de baze de date acceptate:

  • Furnizorul de date ODBC
  • De date OLE DB Provider
  • OracleClient date Provider
  • SqlClient date Provider
  • SQL Server CE de date Provider
Aceste tipuri cadou definite în fişierul Machine.config menţionate anterior





 <configuration>

 





 <configSections>

 





 <Name = Secţiunea "System.Data.Odbc"

 





 type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Name = Secţiunea "System.Data.OleDb" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Name = Secţiunea "System.Data.OracleClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Name = Secţiunea "System.Data.SqlClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ...

 



 "/>

 





 <configSections />

 





 <system.data>

 





 <DbProviderFactories>

 





 <Adaugă name = "Microsoft SQL Server Compact Data Provider" invariant = "







 System.Data.SqlServerCe.3.5 "

 





 type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." />

 





 </ DbProviderFactories>

 





 </ System.Data> <







 / Configurare>>



Pentru a crea o conexiune de date, prin urmare, trebuie să utilizeze componenta dreapta. Odată cu disponibilitatea unei conexiuni puteţi folosi apoi pentru a accesa baza de date. De exemplu, în cazul în care computerul noastre locale ce gazduieste o bază de date SQL Server numit DB_TEST trebuie să intre într-o eventuală cerere noastră şirul de conexiune următoarele






 <configuration>

 





 <connectionStrings>

 





 <Numele Adaugă = "TEST"

 





 ConnectionString = "Server = (local);







 Integrat de Securitate = SSPI; DB_TEST bazei de date = "/>

 





 </ ConnectionStrings>







 </ Configurare>



În acest moment puteţi deschide conexiunea şi pentru a avea baza de date de a efectua operaţiuni pe care ne-o dorim.

Cele mai multe baze de date de sprijin SQL (Structured Query Language) sa faca interogari, modificari, insertii noi şi ştergeri de date. Aceste comenzi au de obicei o formă similară cu următoarea

 



 SELECT * FROM Clienţii care WHERE Nume = 'Smith'

 
în cazul în care Clientul este un tabel într-o bază de date. Această comandă are o listă a clienţilor ale căror nume de familie este Smith. Pentru a obţine aceste date în termen de aplicare a unui noastre vom scrie codul de mai jos





 clasa TestDBApp







 {



  



 void Main static ()



  



 {



    



 DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");



    



 folosind (DbConnection conn = dbProviderFactory.CreateConnection ())



    



 {



      



 string s = ConfigurationManager.ConnectionStrings ["Test"] ConnectionString.;



      



 conn.ConnectionString = s;



      



 conn.Open ();



      



 DbCommand cmd = conn.CreateCommand ();



      



 cmd.CommandText = "SELECT * FROM Clienţii care WHERE Nume = 'Smith'";



      



 DbDataReader cititor = cmd.ExecuteReader ();



      



 / / Utilizaţi cititorul de acces la datele



    



 }



  



 }







 }



Executarea comenzii (cmd), utilizând metoda ExecuteReader cauzele trimiterea de interogări noastre la baza de date. Rezultatele în acest caz sunt obţinute printr-o instanţă de IDataReader, dar, de asemenea, aveţi posibilitatea să gestionaţi-le printr-o altă clasă DataSet pe nume.

IDataReader este indicat pentru a itera cu privire la rezultatele unei interogări. În special, aceasta expune metoda Citeşte că itereaza cel rânduri la un moment dat, astfel sequenziale.Lo dezavantaj este că, atunci când scanarea nu este posibil pentru a reveni la o linie anterioară şi, de asemenea, rândurile returnate sunt doar în citire, astfel încât să nu se poate modifica de conţinut.

Alternativa este de a IDataReader setul de date, care permite gestionarea unui set de date deconectat. ADO.NET este destinat în primul rând pentru a susţine aplicaţii foarte scalabile şi una din principalele probleme de scalabilitate este o limită a numărului de conexiuni la o bază de date. Bazele de date sunt, de fapt, de multe ori o limită privind numărul de conexiuni concurente active la un moment dat şi în cazul în care toţi cei din uz sunt permise operaţiunile sunt încetinite. În cazul în care numărul de utilizatori ai sistemului este de aproximativ egal cu numărul de conexiuni concurente probleme relevante disponibile, nu pot să apară, dar în cazul în care numărul de utilizatori este mai mare performanţă de sistem ar putea fi afectate in mod dramatic.

Pentru a aborda aceste probleme ADO.NET prevede clasa de setul de date, concepute pentru a oferi un fel de copie a bazei de date (sau parte a acestora), utilizate de către o aplicaţie. Avantajele sunt multe, doar cred că într-o instanţă a setului de date se pot introduce date noi, să actualizeze sau şterge pe cele existente, şi apoi confirmă că toate aceste operaţiuni sunt executate în modul deconectat prin conectarea la baza de date pentru o perioadă scurtă de timp.

Clasa de setul de date include o serie de obiecte DataTable, care sunt populate prin DataAdapter. Aceste elemente sunt invocate atunci când încărcarea datelor din baza de date direct în DataTable şi apoi puteţi lucra pe aceste date locale, care interacţionează cu baza de date numai atunci când confirmaţi modificările aduse acestora.

Deci, folosind setul de date, putem accesa orice element atât de complet aleator, spre deosebire de ceea ce am văzut pentru DbDataReader componenta.

ASP.Net cu ajutorul Visual Studio
E-Learning
ASP Curs ASP Curs
Cursul completa pentru crearea de site-uri Web dinamice. -15% Reducere până la 15/11/2011.
Curs ASP.NET Curs ASP.NET
Curs complet pentru construirea de aplicatii web de la 49 €.
Bază de date curs şi SQL Bază de date curs şi SQL
Crearea şi administrarea bazelor de date relaţionale. Incepand de la 39 €.
Link-uri sponsorizate