preistorie
Folosind codul
Nu am inclus o cerere de probă, deoarece codul care este conținută în articol poate fi utilizat în realitate și ar trebui să funcționeze fără probleme. De asemenea, în întregul articol, mă voi referi la SQL Server, MSDE - o versiune gratuită a SQL Server, care nu oferă o serie de instrumente grafice și are mai multe alte limitări, cum ar fi dimensiunea bazei de date. Acest cod ar trebui să funcționeze pe ambele fără probleme.
Setați conexiunea preferată
De fapt, nu există nici o magie voodoo pentru a crea o conexiune la serverul SQL, presupunând că a fost instalat corect - acest lucru nu voi lua în considerare în acest articol. NET face foarte ușor să lucreze cu SQL. Primul pas este să adăugați spațiul de nume al clientului SQL:
Apoi vom crea un SqlConnection și vom specifica șirul de conexiune.
Notă: o întrerupere a șirului de conexiune este utilizată numai pentru formatare
SqlConnection.ConnectionString
Șirul de conectare este pur și simplu un set de opțiuni și valorile acestora care indică modul și locul unde se conectează. În timp ce am studiat fișierele de ajutor Visual Studio .NET, am găsit un număr de domenii, cu o mulțime de nume, dar funcționează în același mod ca, de exemplu, parola și Pwd sunt interschimbabile. Nu am inclus toate opțiunile pentru SqlConnection.ConnectionString în acest moment. De îndată ce am obține o șansă de a testa și de a folosi celelalte opțiuni, voi le include în articol.
ID-ul de utilizator este folosit pentru autentificarea SQL. În practica mea, de obicei ignor această opțiune utilizând Trusted_Connection sau autentificare Windows. Dacă este asociată o parolă cu numele de utilizator, se utilizează parola sau Pwd.
Parola sau Pwd
"Parola = validpassword;"
--sau-
"Pwd = validpassword;"
Sursă de date sau Server sau Adresă sau Adăugare sau Adresa de rețea
"Sursa de date = localhost";
--sau-
"Server = localhost";
--sau-
"Adresa = localhost;"
--sau-
"Addr = localhost;"
--sau-
"Adresa de rețea = localhost;"
Integrated Sercurity sau Trusted_Connection
Securitatea integrată și Trusted_Connection sunt utilizate pentru a indica dacă conexiunea este securizată, de exemplu, ca autentificare utilizând Windows sau SSPI. Valoarea recunoscută este adevărată. fals și sspi. Conform documentației MSDN, sspi este echivalentul realității. Notă: Nu știu cum funcționează SSPI. sau cum afectează conexiunea.
Conectați timpul de expirare sau intervalul de conectare
Aceste opțiuni determină timpul să aștepte ca serverul să răspundă înainte ca eroarea să fie generată în câteva secunde. Valoarea implicită este de 15 (secunde).
"Timeout conectat = 10;"
--sau-
"Timeout-ul conexiunii = 10;"
Catalog inițial sau bază de date
Catalogul inițial și baza de date sunt doar două moduri de a selecta baza de date asociată conexiunii.
"Catalog Inital = principal;"
--sau-
"Baza de date = principala;"
Biblioteca de rețea sau Net
Opțiunea Biblioteca de rețea este importantă dacă vă conectați la serverul de un altul decât TCP / IP protocol. Valoarea implicită pentru Biblioteca din rețea - acesta dbmssocn sau TCP / IP. Sunt disponibile următoarele opțiuni: dbnmpntw (Named Pipes, tevi numite), dbmsrpcn (multiprotocol), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmsipcn (memorie partajată, memorie partajată), dbmsspxn (IPX / SPX) și dbmssocn (TCP / IP ). Și, la fel ca înainte, de rețea și Biblioteca Net pot fi folosite alternativ. Notă: Protocolul de rețea corespunzătoare trebuie să fie instalat pe sistem la care vă conectați.
SqlConnection.Open ()
Aceasta este ultima parte a configurației conexiunii și, în caz simplu, este executată de următorul cod (nu uitați să vă asigurați că conexiunea dvs. a primit șirul de conexiune mai devreme):
SqlConnection.Open () - este lipsit de goluri funcție care nu se întoarce erori, și aruncă o excepție, așa că nu uitați să-l pună într-un bloc try / catch pentru a preveni o explozie a programului de pe fața utilizatorului.
Prezentarea echipei
comandă SQL este probabil cea mai dificilă parte a bazelor de date folosind SQL, dar .NET mediu oferă un înveliș care face ca toate minunat, eliminând mai mare parte a lucrării.
SqlCommand
Există idei pentru care este folosit SqlCommand. Dacă ați presupus că este folosit pentru comenzi SQL, atunci aveți absolută dreptate. SqlCommand necesită cel puțin două lucruri pentru a funcționa. Linie de comandă și conexiune. Mai întâi, luați în considerare cerința de conectare. Există două moduri de a specifica o conexiune, ambele ilustrate mai jos:
Șirul de comandă poate fi specificat în două moduri prin proprietatea SqlCommand.CommandText. Acum, să ne uităm la primul nostru SqlCommand. Pentru a lăsa un exemplu simplu, aceasta va fi o comandă simplă INSERT.
Acum ia în considerare valorile. tabel este doar un tabel în baza de date. Coloanele1 și Coloana2 sunt doar numele coloanelor. În secțiunea de valori, am arătat cum să adăugăm șirul de tip și int. Valoarea șirului este plasată în ghilimele simple, iar întregul, după cum puteți vedea, este trecut ca atare. Ultimul pas este de a executa comanda cu:
SqlDataReader
Introducerea datelor este bună, însă obținerea acestora este la fel de importantă. Acum scena este SqlDataReader. "Cititorul de date" nu este tot ce aveți nevoie; cu excepția faptului că aveți nevoie și de SqlCommand. Următorul cod demonstrează modul de configurare și de rulare a unui cititor simplu:
SqlParameter
Există o mică problemă atunci când utilizați SqlCommand în modul pe care l-am demonstrat - lasă o mare gaură în securitate. De exemplu, utilizând abordarea demonstrată anterior, linia de comandă este aproximativ aceeași dacă primiți date de la utilizator:
Toate frumos și bine, dacă utilizatorul introduce date în forma corectă, cu toate acestea, este ceea ce se întâmplă în cazul în care utilizatorul introduce valoare1, tabelul DROP. În cel mai bun caz, va arunca o excepție (eu nu pun scopul de a verifica dacă face acest exemplu - demonstrează doar abordarea), cel mai rău caz - puteți sărut la revedere masa ta. Puteți procesa toate intrările utilizatorilor și puteți tăia tot ce cauzează probleme sau utilizați SqlParameter. Clasa SqlParameter este destul de mare, vă voi arăta doar elementele de bază ale utilizării parametrilor. Practic, aveți nevoie de trei lucruri pentru a crea un parametru. Acest nume, tipul de date și dimensiunea. (rețineți că unele dintre tipurile de date de care aveți nevoie nu necesită indicații de dimensiune, cum ar fi Text).
Există un acord privind denumirea (poate fi obligatorie, nu sunt sigur), pentru a apela parametrii începând cu @. În continuare, cum veți utiliza parametrul? Acesta va fi destul de simplu, după cum arată următorul cod.
Acest lucru va opri escrocii să nu încerce să se infiltreze în linia de comandă. Nu este vorba despre parametrii, dacă doriți să aflați mai multe - un loc bun pentru a începe de aici [^].
Nu uitați să vă închideți când ați terminat!
Închiderea unei conexiuni este la fel de ușoară ca deschiderea. Doar apelați SqlConnection.Close (). dar nu uitați să îl puneți în blocul try / catch, deoarece, ca și SqlConnection.Open (). aceasta nu returnează erori, dar aruncă o excepție.
Atunci când conexiunile bune devin rele
Acum, aplicația dvs. ASP.NET se poate conecta la server. Tot ce a mai rămas este să dea drepturi la bazele de date.
Aceste două linii oferă drepturi la una dintre bazele de date. Deci, dacă doriți să acordați drepturi unei alte baze de date - doar modificați .ATABASE% și executați ambele linii.
Acum, aplicația dvs. ASP.NET se poate conecta la server. Tot ce a mai rămas este să dea drepturi la bazele de date.
Aceste două linii dau drepturi unei singure baze de date. Dacă doriți să acordați drepturi unei alte baze de date, trebuie doar să modificați ATABASE% și apoi să rulați din nou ambele linii.
Drum liber
Acum aveți noțiunile de bază necesare pentru a începe să utilizați baza de date SQL în aplicațiile web sau desktop.