Conectarea la baza de date

Primul lucru de făcut atunci când se lucrează cu furnizorul de date - este de a stabili o sesiune cu o sursă de date utilizând obiectul de conexiune (generat așa cum vă amintiți de la DbConnection). Legat NET obiect are un șir de conexiune formatat, care conține o serie de perechi nume / valoare, separate prin virgulă. Această informație conține numele mașinii la care doriți să vă conectați, parametrii de securitate necesare, numele bazei de date de pe această mașină și alte informații, în funcție de furnizor.







Codul de mai jos arată cum să creați, deschide și închide o conexiune de date la un SqlServer:

În plus, puteți specifica orice număr de elemente care definesc acreditările de securitate. În exemplul nostru, numele este setat la SSPI integrat de securitate (care este echivalent cu adevărat), care este utilizat pentru acreditări de autentificare utilizator curent cont de utilizator Windows.

Scopul fiecărei perechi nume / valoare pentru baza de date pot fi găsite în documentația pentru NET Framework 4.0 SDK-ul, în descrierea proprietății ConnectionString a obiectului de conectare pentru furnizorul de date.

Dacă există o linie care leagă un apel deschis () stabilește o conexiune la SGBD. În plus față de membrii ConnectionString, Open () și Close () obiectul de conexiune conține un număr de membri, pe care o puteți personaliza setările de conectare suplimentare, cum ar fi timpul și a informațiilor referitoare la tranzacție.

Aici sunt unii membri ai DbConnection clasei de baza:

Este folosit pentru a începe o tranzacție de bază de date

Modifică baza de date pentru o conexiune deschisă

Read-only. Returnează timpul de așteptare atunci când instalați conexiunea, după care așteptarea este terminată și un mesaj de eroare (implicit 15 secunde). Pentru a modifica timpul necesar pentru a schimba un segment de linie de conectare Connect Timeout (de exemplu, Connect Timeout = 30)

Read-only. Acesta conține numele bazei de date, care este asociat cu obiectul de conectare







Read-only. Acesta conține locația bazei de date, care este asociat cu obiectul de conectare

Această metodă returnează obiect care conține informații DataTable din schema sursă de date

Read-only. Acesta conține starea curentă a conexiunii sub forma uneia dintre valorile de enumerare ConnectionState

Tip Proprietăți DbConnection destinate în principal numai în citire și, prin urmare, au nevoie, atunci când doriți datele de conexiune la rulare. Dacă trebuie să modificați setările implicite, va trebui să schimbați șirul de conexiune în sine. De exemplu, puteți modifica durata de temporizare de la 15 la 30 de secunde:

Activitatea politica a liniilor de conexiune poate fi un pic dificil, deoarece acestea sunt adesea prezentate sub forma de sir de caractere, care sunt dificil de manipulat și de a monitoriza pentru erori. distribuitorii de date ADO.NET proiectat Microsoft, suport obiecte liniile de conexiune (constructori conexiune obiect builder string) (analog StringBuilder), care permit să se stabilească perechi nume / valoare folosind proprietăți puternic tastate. Luați în considerare următoarele modificări ale metodei noastre principale ():

In acest exemplu de realizare creează exemplu SqlConnectionStringBuilder, setați proprietățile sale și proprietățile selectate ale ConnectionString șir interior. Aici vom folosi un tip de constructor standard de. În acest caz, este de asemenea posibil să se creeze o instanță a constructorului obiectului pentru linia de conectare furnizor de date, care trece ca o linie de conexiune existentă la punctul de pornire (poate fi convenabil pentru citire a valorilor dinamice din fișierul App.config).

Utilizarea eficientă a compușilor

În general, atunci când se utilizează .NET resurse limitate, cum ar fi conexiuni de baze de date, ferestre sau grafică, formă bună este de a închide resursa după ce a lucrat cu el. Deși designerii .NET au pus în aplicare de colectare a gunoiului automate, care, mai devreme sau mai târziu, trebuie să elibereze resurse cât mai curând posibil, pentru a evita penuria de resurse.

Acest lucru se aplică, de asemenea, pentru a scrie cod care accesează baza de date, deoarece păstrarea conexiunilor deschise mai mult timp decât este necesar pot afecta alte sesiuni.

În cazuri extreme de conectare neacoperite pot bloca complet alți utilizatori să acceseze o mulțime de tabele, provocând pagube enorme pentru performanța aplicației. Închiderea conexiunii bazei de date ar trebui să fie obligatorie, astfel încât în ​​această secțiune vom demonstra structura codului, care reduce la minimum riscul de a lăsa resurse deschise.

asigurarea resurselor curate variantă constă în aplicarea blocuri try. captura. în cele din urmă, și asigură închiderea oricăror conexiuni deschise în interiorul bloca în cele din urmă. Luați în considerare un scurt exemplu: