Programe care lucrează cu baze de date. Dezvoltarea aplicatiilor de baze de date. Proiectare infologică, fundamentarea obiectelor informaționale, domeniilor, atributelor, legăturilor, întocmirea unui model infologic

Să creăm o aplicație simplă de bază de date care afișează informații din tabelul Turists și intrarea în tabel Tourist Info asociată cu înregistrarea curentă din tabelul Turists dintr-o bază de date Microsoft Access.

Pentru a face acest lucru, vom crea o aplicație Windows goală. Aspectul mediului

dezvoltarea este prezentată în Figura 39.

Orez. 39. Aplicație goală

Figura 39 evidențiază grupul de componente „Date” („Date”), care conține componente pentru accesarea și manipularea datelor.

Legarea datelor bazei de date la formular este realizată de componenta „Sursa de legare”. Să-l transferăm în formular. După plasarea lui pe formular, mediul de dezvoltare ia următoarea formă (Fig. 40).

Orez. 40. Componenta Binding Source de pe formular

Componenta este non-vizuală, deci este afișată într-un panou suplimentar. Proprietatea principală a componentei este proprietatea DataSource, care indică sursa de date. În mod implicit, proprietatea este goală, așa că trebuie să-i formați valoarea. Când această proprietate este selectată, în fereastra de proprietăți apare următoarea fereastră (Fig. 41).

Orez. 41. Lista surselor de date

Lista este în prezent goală, așa că trebuie să creați o nouă sursă de date selectând comanda „Add Project Data Source” pentru a crea o nouă sursă de date și a vă conecta la ea. Apare următoarea casetă de dialog (Fig. 42).

Orez. 42. Lista surselor de date

Acest dialog oferă următoarea selecție de surse de date:

Baza de date - Baza de date;

Service - Service, acesta este un serviciu care oferă date. Cel mai adesea acesta este un serviciu Web;

Obiect - Un obiect pentru selectarea unui obiect care va genera date și obiecte pentru lucrul cu ele.

În cazul nostru, trebuie să selectați elementul „Bază de date”. Apare fereastra de selectare a conexiunii de date (Fig. 43).

Orez. 43. Selectarea unei conexiuni de date

Scopul acestui dialog este de a crea un șir de conexiune care descrie parametrii de conexiune pentru motorul ADO, cum ar fi tipul bazei de date, locația acesteia, numele de utilizator, caracteristicile de securitate și așa mai departe.

Lista derulantă a casetei de dialog conține toate conexiunile create anterior. Dacă conexiunea necesară nu este în listă, atunci trebuie utilizat butonul „Conexiune nouă”. Apăsarea butonului duce la apariția următorului dialog (Fig. 44).

Acest dialog selectează tipul sursei de date (în acest caz Microsoft Access), numele bazei de date (în acest caz numele și locația fișierului bazei de date), numele de utilizator și parola utilizate pentru conectarea la baza de date. Butonul „Avansat” vă permite să setați un număr mare de parametri legați de diferite părți ale motorului ADO. Utilizarea butonului „Testează conexiunea” vă va asigura că parametrii introduși sunt corecti și că conexiunea funcționează.

Orez. 44. Creați o nouă conexiune

Ultimul pas al dialogului este selectarea acelor tabele sau a altor obiecte de bază de date care sunt necesare în această sursă de date. Fereastra de selecție este prezentată în Figura 45.

Orez. 45. Selectarea tabelelor necesare

În această fereastră sunt selectate tabelele „Turiști” și „Informații despre turiști”. Deoarece în baza de date nu au fost create alte obiecte decât tabele, în Figura 45 sunt prezentate doar tabele. Aceasta finalizează crearea sursei de date. După ce faceți clic pe butonul „Finish” de lângă componenta BindingSource, componenta DataSet apare pe formular.

Acum datele conectate mai sus trebuie să fie afișate pe formular. Cel mai simplu mod de a afișa date este să utilizați componenta DataGridView din grupul de componente Data. Componenta este vizuală și arată astfel pe formular (Fig. 46).

Orez. 46. ​​​​Componenta DataGridView

Apare imediat fereastra de setări ale componentelor, care determină capacitățile sale de editare a datelor: „Activați editarea” (“Activați adăugarea”), „Activați editarea” (“Activați editarea”), „Activați ștergerea” (“Activați ștergerea”); capacitatea de a schimba secvența coloanelor: „Activați capacitatea de a schimba ordinea coloanelor” („Activați reordonarea coloanelor”); precum și capacitatea de a fixa în containerul părinte.

Pentru ca componenta să poată afișa date, trebuie să selectați sursa de date din lista derulantă. Selectarea listei derulante duce la apariția următoarei casete de dialog (Fig. 47).

Orez. 47. Selectarea unei surse de date pentru DataGridView

În acest caz, am ales ca sursă de date tabelul „Turiști”. Această alegere modifică forma ecranului după cum urmează (Fig. 48).

Orez. 48. Componenta DataGridView afișează structura tabelului

Figura arată că există o altă componentă BindingSource și o componentă TableAdapter care funcționează cu tabelul „Turiști”. Vă rugăm să rețineți că în timpul proiectării sau în timpul dezvoltării, datele din tabel nu sunt afișate.

Acum trebuie să afișați datele din tabelul aferent „Informații pentru turiști”. Pentru a face acest lucru, să plasăm o altă componentă DataGridView pe formular și să selectăm următoarele ca sursă de date (Fig. 49).

Orez. 49. Selectarea unei surse de date pentru al doilea DataGridView

Aici, sursa de date nu este tabelul „Informații despre turiști” în sine, ci legătura (Sursa obligatorie) dintre tabelele „Informații despre turiști” și „Informații despre turiști”. Această selecție asigură că numai acele rânduri din tabelul de informații turistice care sunt legate de rândul curent din tabelul de turiști sunt selectate din tabelul de informații turistice. De asemenea, se asigură că datele aferente sunt actualizate și șterse corect. Funcționarea aplicației rezultate este prezentată în Figura 50.

Orez. 50. Aplicația de bază de date în acțiune

Navigarea prin date folosind tastele săgeți este incomod. Pentru a simplifica navigarea prin date, există o componentă BindingNavigator. Să-l aşezăm pe formular (Fig. 51).

Orez. 51. Componenta BindingNavigator din formular

Această componentă vă permite să navigați între intrările din tabel, să adăugați și să ștergeți rânduri de tabel. Caracteristicile și aspectul componentei sunt personalizabile deoarece este o bară de meniu ToolStripContainer.

Proprietatea care definește tabelul prin care să navigați este proprietatea BindingSource. Setați valoarea acestei proprietăți la „touristsBindingSource”. În funcționare, componenta arată astfel (Fig. 52).

Orez. 52. Componenta BindingNavigator la locul de muncă

Editarea datelor în celulele componentei DataGridView cu setările corespunzătoare este posibilă, dar incomod și nu rațional. În special, este dificil să verificați valorile introduse pentru erori. Prin urmare, pentru tabelul „Turiști”, vom realiza un formular de ecran care vă permite să afișați date în componentele TextBox și să le editați. Pentru a face acest lucru, să plasăm un container de tip Panel pe formular și trei componente TextBox pe acesta, după cum urmează (Fig. 53).

Orez. 53. Panou ecran pentru editarea înregistrărilor din tabelul „Turiști”

Acum trebuie să legați componentele TextBox la câmpurile corespunzătoare din tabelul „Turiști”. Pentru a face acest lucru, utilizați proprietatea din grupul DataBindings - Advanced, prezentată în Figura 54.

Orez. 54. Proprietatea „DataBindings - Advanced”.

Selectarea acestei proprietăți duce la apariția casetei de dialog prezentată în Figura 55. Acest dialog vă permite nu numai să legați date, ci și să setați un eveniment în cadrul căruia datele vor fi actualizate, precum și formatarea datelor atunci când sunt afișate.

Pentru componenta de sus TextBox din lista derulantă Binding, selectați sursa de date „touristsBmdmgSource” și câmpul sursă - „Last name”. Pentru componentele de mijloc și de jos ale TextBox, vom selecta aceeași sursă de date și câmpurile „First Name” și, respectiv, „Patronymic”.

Aplicația dezvoltată în funcțiune arată astfel (Fig. 56).

Orez. 55. Caseta de dialog pentru proprietatea „DataBindings - Advanced”.

Orez. 56. Legarea datelor la componente vizuale

Cu toate acestea, atunci când se fac modificări, toate datele noi rămân doar în formular. Nu sunt stocate în baza de date, iar când aplicația este apelată din nou, desigur, vor lipsi. Acest lucru se datorează faptului că datele au fost încărcate într-un obiect DataSet, care este o copie în memorie a tabelului. Toate acțiunile sunt efectuate pe această copie. Pentru ca modificările să se reflecte în baza de date, trebuie să executați metoda Update a clasei TableAdapter. Astfel, în aplicația în curs de dezvoltare, este necesar să plasați butonul „Actualizare” și să scrieți următorul cod de program în handlerul de evenimente Click:

touristsTableAdapteGUpdate(bDTur_firmDataSet); tourist_informationTableAdapter.Update(bDTur_firmDataSet);

Acest cod actualizează informațiile din tabelele „Turiști” și „Informații turistice” furnizate de sursa de date. Rețineți că această metodă este supraîncărcată, iar variantele sale vă permit să actualizați atât un singur rând de tabel, cât și un grup de rânduri.

Să creăm o aplicație simplă de bază de date care afișează informații din tabelul Turists și intrarea în tabel Tourist Info asociată cu înregistrarea curentă din tabelul Turists dintr-o bază de date Microsoft Access.

Pentru a face acest lucru, vom crea o aplicație Windows goală. Aspectul mediului

dezvoltarea este prezentată în Figura 39.

Orez. 39. Aplicație goală

Figura 39 evidențiază grupul de componente „Date” („Date”), care conține componente pentru accesarea și manipularea datelor.

Legarea datelor bazei de date la formular este realizată de componenta „Sursa de legare”. Să-l transferăm în formular. După plasarea lui pe formular, mediul de dezvoltare ia următoarea formă (Fig. 40).

Orez. 40. Componenta Binding Source de pe formular

Componenta este non-vizuală, deci este afișată într-un panou suplimentar. Proprietatea principală a componentei este proprietatea DataSource, care indică sursa de date. În mod implicit, proprietatea este goală, așa că trebuie să-i formați valoarea. Când această proprietate este selectată, în fereastra de proprietăți apare următoarea fereastră (Fig. 41).

Orez. 41. Lista surselor de date

Lista este în prezent goală, așa că trebuie să creați o nouă sursă de date selectând comanda „Add Project Data Source” pentru a crea o nouă sursă de date și a vă conecta la ea. Apare următoarea casetă de dialog (Fig. 42).

Orez. 42. Lista surselor de date

Acest dialog oferă următoarea selecție de surse de date:

Baza de date - Baza de date;

Service - Service, acesta este un serviciu care oferă date. Cel mai adesea acesta este un serviciu Web;

Obiect - Un obiect pentru selectarea unui obiect care va genera date și obiecte pentru lucrul cu ele.

În cazul nostru, trebuie să selectați elementul „Bază de date”. Apare fereastra de selectare a conexiunii de date (Fig. 43).

Orez. 43. Selectarea unei conexiuni de date

Scopul acestui dialog este de a crea un șir de conexiune care descrie parametrii de conexiune pentru motorul ADO, cum ar fi tipul bazei de date, locația acesteia, numele de utilizator, caracteristicile de securitate și așa mai departe.

Lista derulantă a casetei de dialog conține toate conexiunile create anterior. Dacă conexiunea necesară nu este în listă, atunci trebuie utilizat butonul „Conexiune nouă”. Apăsarea butonului duce la apariția următorului dialog (Fig. 44).

Acest dialog selectează tipul sursei de date (în acest caz Microsoft Access), numele bazei de date (în acest caz numele și locația fișierului bazei de date), numele de utilizator și parola utilizate pentru conectarea la baza de date. Butonul „Avansat” vă permite să setați un număr mare de parametri legați de diferite părți ale motorului ADO. Utilizarea butonului „Testează conexiunea” vă va asigura că parametrii introduși sunt corecti și că conexiunea funcționează.

Orez. 44. Creați o nouă conexiune

Ultimul pas al dialogului este selectarea acelor tabele sau a altor obiecte de bază de date care sunt necesare în această sursă de date. Fereastra de selecție este prezentată în Figura 45.

Orez. 45. Selectarea tabelelor necesare

În această fereastră sunt selectate tabelele „Turiști” și „Informații despre turiști”. Deoarece în baza de date nu au fost create alte obiecte decât tabele, în Figura 45 sunt prezentate doar tabele. Aceasta finalizează crearea sursei de date. După ce faceți clic pe butonul „Finish” de lângă componenta BindingSource, componenta DataSet apare pe formular.

Acum datele conectate mai sus trebuie să fie afișate pe formular. Cel mai simplu mod de a afișa date este să utilizați componenta DataGridView din grupul de componente Data. Componenta este vizuală și arată astfel pe formular (Fig. 46).

Orez. 46. ​​​​Componenta DataGridView

Apare imediat fereastra de setări ale componentelor, care determină capacitățile sale de editare a datelor: „Activați editarea” (“Activați adăugarea”), „Activați editarea” (“Activați editarea”), „Activați ștergerea” (“Activați ștergerea”); capacitatea de a schimba secvența coloanelor: „Activați capacitatea de a schimba ordinea coloanelor” („Activați reordonarea coloanelor”); precum și capacitatea de a fixa în containerul părinte.

Pentru ca componenta să poată afișa date, trebuie să selectați sursa de date din lista derulantă. Selectarea listei derulante duce la apariția următoarei casete de dialog (Fig. 47).

Orez. 47. Selectarea unei surse de date pentru DataGridView

În acest caz, am ales ca sursă de date tabelul „Turiști”. Această alegere modifică forma ecranului după cum urmează (Fig. 48).

Orez. 48. Componenta DataGridView afișează structura tabelului

Figura arată că există o altă componentă BindingSource și o componentă TableAdapter care funcționează cu tabelul „Turiști”. Vă rugăm să rețineți că în timpul proiectării sau în timpul dezvoltării, datele din tabel nu sunt afișate.

Acum trebuie să afișați datele din tabelul aferent „Informații pentru turiști”. Pentru a face acest lucru, să plasăm o altă componentă DataGridView pe formular și să selectăm următoarele ca sursă de date (Fig. 49).

Orez. 49. Selectarea unei surse de date pentru al doilea DataGridView

Aici, sursa de date nu este tabelul „Informații despre turiști” în sine, ci legătura (Sursa obligatorie) dintre tabelele „Informații despre turiști” și „Informații despre turiști”. Această selecție asigură că numai acele rânduri din tabelul de informații turistice care sunt legate de rândul curent din tabelul de turiști sunt selectate din tabelul de informații turistice. De asemenea, se asigură că datele aferente sunt actualizate și șterse corect. Funcționarea aplicației rezultate este prezentată în Figura 50.

Orez. 50. Aplicația de bază de date în acțiune

Navigarea prin date folosind tastele săgeți este incomod. Pentru a simplifica navigarea prin date, există o componentă BindingNavigator. Să-l aşezăm pe formular (Fig. 51).

Orez. 51. Componenta BindingNavigator din formular

Această componentă vă permite să navigați între intrările din tabel, să adăugați și să ștergeți rânduri de tabel. Caracteristicile și aspectul componentei sunt personalizabile deoarece este o bară de meniu ToolStripContainer.

Proprietatea care definește tabelul prin care să navigați este proprietatea BindingSource. Setați valoarea acestei proprietăți la „touristsBindingSource”. În funcționare, componenta arată astfel (Fig. 52).

Orez. 52. Componenta BindingNavigator la locul de muncă

Editarea datelor în celulele componentei DataGridView cu setările corespunzătoare este posibilă, dar incomod și nu rațional. În special, este dificil să verificați valorile introduse pentru erori. Prin urmare, pentru tabelul „Turiști”, vom realiza un formular de ecran care vă permite să afișați date în componentele TextBox și să le editați. Pentru a face acest lucru, să plasăm un container de tip Panel pe formular și trei componente TextBox pe acesta, după cum urmează (Fig. 53).

Orez. 53. Panou ecran pentru editarea înregistrărilor din tabelul „Turiști”

Acum trebuie să legați componentele TextBox la câmpurile corespunzătoare din tabelul „Turiști”. Pentru a face acest lucru, utilizați proprietatea din grupul DataBindings - Advanced, prezentată în Figura 54.

Orez. 54. Proprietatea „DataBindings - Advanced”.

Selectarea acestei proprietăți duce la apariția casetei de dialog prezentată în Figura 55. Acest dialog vă permite nu numai să legați date, ci și să setați un eveniment în cadrul căruia datele vor fi actualizate, precum și formatarea datelor atunci când sunt afișate.

Pentru componenta de sus TextBox din lista derulantă Binding, selectați sursa de date „touristsBmdmgSource” și câmpul sursă - „Last name”. Pentru componentele de mijloc și de jos ale TextBox, vom selecta aceeași sursă de date și câmpurile „First Name” și, respectiv, „Patronymic”.

Aplicația dezvoltată în funcțiune arată astfel (Fig. 56).

Orez. 55. Caseta de dialog pentru proprietatea „DataBindings - Advanced”.

Orez. 56. Legarea datelor la componente vizuale

Cu toate acestea, atunci când se fac modificări, toate datele noi rămân doar în formular. Nu sunt stocate în baza de date, iar când aplicația este apelată din nou, desigur, vor lipsi. Acest lucru se datorează faptului că datele au fost încărcate într-un obiect DataSet, care este o copie în memorie a tabelului. Toate acțiunile sunt efectuate pe această copie. Pentru ca modificările să se reflecte în baza de date, trebuie să executați metoda Update a clasei TableAdapter. Astfel, în aplicația în curs de dezvoltare, este necesar să plasați butonul „Actualizare” și să scrieți următorul cod de program în handlerul de evenimente Click:

touristsTableAdapteGUpdate(bDTur_firmDataSet); tourist_informationTableAdapter.Update(bDTur_firmDataSet);

Acest cod actualizează informațiile din tabelele „Turiști” și „Informații turistice” furnizate de sursa de date. Rețineți că această metodă este supraîncărcată, iar variantele sale vă permit să actualizați atât un singur rând de tabel, cât și un grup de rânduri.

DEZVOLTAREA UNEI APLICAȚII DE LUCRU CU BAZELE DE DATE

Roza Gaynanova

lector al Departamentului de Discipline Generale Educaţionale

Universitatea Națională de Cercetare Tehnologică din Kazan

Rusia, Kazan

ADNOTARE

Articolul discută metodele de acces la bazele de date și interfețele de programare utilizate în aceste metode de acces. Se are în vedere integrarea aplicațiilor Visual C# cu serverul DBMS Microsoft SQL Server 2012. Se consideră ca exemplu dezvoltarea sistemului informațional „Agenția de turism”.

ABSTRACT

Articolul examinează metodele de acces la bazele de date și interfețele software utilizate în aceste metode de acces. Luăm în considerare integrarea aplicațiilor Visual C# cu serverul de baze de date Microsoft SQL Server 2012. Ca exemplu, se are în vedere dezvoltarea sistemului informațional „Agenția de turism”.

Cuvinte cheie: bază de date, SQL Server, aplicație, utilizatori, control, interogare.

Cuvinte cheie: bază de date, SQL Server, aplicație, utilizatori, element de control, interogare.

Un sistem informațional este un set interconectat de mijloace, metode și personal folosit pentru a stoca, procesa și emite informații în scopul atingerii unui obiectiv stabilit. Sistemul informatic dezvoltat va fi construit pe tehnologia client-server. În astfel de sisteme, informațiile sunt stocate pe server, iar interfața sistemului informațional este stocată pe computerele client, prin intermediul cărora utilizatorii sistemului informațional au acces la date.

La dezvoltarea unui sistem informatic, trebuie rezolvate două sarcini principale:

  • sarcina de a dezvolta o bază de date concepută pentru a stoca informații;
  • sarcina de a dezvolta o interfață grafică cu utilizatorul pentru aplicațiile client.

Baza de date „Agenție de turism” este creată pe Microsoft SQL Server 2012. Baza de date stochează informații despre clienții acestei agenții de turism (turiști), despre tururile oferite de aceasta, despre înregistrarea și plata tururilor. În faza de proiectare a bazei de date sunt create tabelele „Turiști”, „Tururi”, „Permise”, „Anotimpuri”, „Plată”. Se stabilesc legături între tabele.

Aplicația agenției de turism va fi utilizată de șeful agenției de turism, directorii de vânzări, contabilul, casierul și personalul de birou al agenției de turism. Unul dintre angajații biroului este numit administrator de sistem. Numai el va menține conturile de utilizator. Pe lângă cele cinci tabele principale, este creat tabelul „Utilizatori”, care conține informații despre utilizatorii bazei de date. Acest tabel nu are legătură cu alte tabele. Structura acestui tabel: cod de utilizator, nume, poziție, autentificare și parolă. Numai administratorul de sistem poate face modificări acestui tabel.

Sistemul de securitate SQL Server se bazează pe două concepte: autentificare și autorizare. Administratorul de sistem responsabil pentru securitatea SQL Server creează un obiect de conectare separat pentru fiecare utilizator. Acest obiect conține numele contului de utilizator SQL Server, parola, numele complet și alte atribute utilizate pentru a controla accesul la bazele de date SQL Server. Prin conectarea la SQL Server, utilizatorul are acces la acele baze de date în care este înregistrat contul său. Pentru a înregistra un cont într-o anumită bază de date, administratorul de sistem creează un nume de utilizator al bazei de date în cont și îl asociază cu acel cont. Administratorul de sistem acordă utilizatorilor anumite puteri. Managerul de vânzări poate face modificări în tabelele „Turiști” și „Permise” și poate modifica coloana „Număr_locuri” din tabelul „Tururi” după vânzarea următorului voucher. Un angajat al agenției de turism poate face modificări la tabelele „Anotimpuri” și „Tururi”. Contabil și casier - în tabelul „Plată”.

Acordarea permisiunilor se poate face în SQL Server Management Studio prin deschiderea ferestrelor de proprietăți ale utilizatorului corespunzător. De asemenea, puteți acorda permisiuni folosind instrucțiunea GRANT. Exemple de acordare de autoritate unui manager. Următoarea declarație acordă utilizatorului Menedger dreptul de a vizualiza, modifica tabelul Turiști, de a insera rânduri noi și de a șterge datele învechite.

USE Agentie de Turism

GRANT SELECT, UPDATE, INSERT, DELETE

ON Turişti

O instrucțiune similară este creată pentru lucrul cu tabelul „Tururi”. Pentru a acorda managerului dreptul de a schimba o singură coloană a tabelului „Tururi”, după numele tabelului dintre paranteze, este indicat numele coloanei modificate „Tururi” (Număr de_locuri). Furnizate operațiuni SELECT, UPDATE.

Există patru instrucțiuni în limbajul de control al datelor (DCL): COMMIT (complet), ROLLBACK (rollback), GRANT (acordare), REVOKE (revocare). Toate aceste instrucțiuni sunt legate de protejarea bazei de date împotriva daunelor accidentale sau intenționate. Bazele de date sunt vulnerabile tocmai atunci când le sunt aduse modificări. Pentru a proteja baza de date, SQL prevede limitarea operațiunilor. Care o pot schimba, astfel încât acestea să fie executate doar în cadrul tranzacțiilor. Când mai mulți utilizatori încearcă să folosească același tabel de bază de date în același timp, se creează o situație de dispută. Problemele de concurență apar chiar și în aplicații relativ simple dacă aplicația este instalată și rulată pe un sistem multi-utilizator care nu are suficient control al concurenței. Tranzacțiile nu intră în conflict dacă sunt executate secvenţial.

Unul dintre instrumentele principale pentru menținerea integrității bazei de date este o tranzacție. O tranzacție încapsulează toate instrucțiunile SQL care pot afecta baza de date. O tranzacție SQL se termină cu una dintre cele două instrucțiuni: COMMIT (complet) sau ROLLBACK (rollback). Dacă o tranzacție se termină cu o instrucțiune ROLLBACK, atunci toate instrucțiunile sale sunt anulate și baza de date este returnată la starea inițială. O tranzacție normală poate fi executată în unul dintre cele două moduri: READ-WRITE (citire-scriere) sau READ-ONLY (numai citire). Puteți seta unul dintre următoarele niveluri de izolare pentru o tranzacție: SERIAIZABLE (execuție în serie), REPEATABLE READ (citire repetată), READ UNCOMMITED (citește date necommitate). În mod implicit, caracteristicile READ-WRITE și SERIAIZABLE sunt în vigoare. Caracteristicile implicite ale unei tranzacții SQL sunt de obicei potrivite pentru majoritatea utilizatorilor.

Aplicația este creată în mediul Visual Studio 2012 folosind limbajul de programare C#. Proiectarea unui produs software începe cu dezvoltarea unei interfețe cu utilizatorul.

Fereastra principală a aplicației ar trebui să apeleze funcțiile principale pentru lucrul cu aplicația (Figura 1). Meniul este folosit pentru a efectua aceste operații. Meniul este format din următoarele elemente: „Tabele”, „Interogări”, „Rapoarte”. Fiecare dintre aceste articole conține subarticole. Fiecare funcție va fi executată în propria fereastră. Elementul MenuStrip este setat în fereastra principală a aplicației, se formează opțiunile de meniu. Un element PictureBox este plasat în fereastra formularului. O imagine este încărcată în zona elementului. Desenul trebuie să acopere întreaga zonă. Proprietatea SizeMode stabilește scalarea desenului. Pentru această proprietate, StretchImage este selectat din lista derulantă, desenul este scalat astfel încât să ocupe întreaga suprafață a obiectului.

Pentru a afișa o listă de utilizatori care au dreptul de a lucra cu baza de date „Agenție de turism”, este instalat un control comboBox. Elementul comboBox este legat de o sursă de date. Fereastra " DINomboBoxSarcini”, în care este bifată caseta de selectare „Utilizați elemente legate de date”, dacă această casetă este bifată, se deschid opțiunile de legare a datelor. Elementul comboBox este legat de tabelul „Utilizatori”, în linia „Membru de afișare”, este selectat „Nume”. Pentru a introduce o autentificare, este setat un control textbox1, pentru a introduce o parolă, textBox2. Pentru elementele textBox1 și textBox2, proprietatea UsesSystemPasworChar este setată la true, care specifică dacă textul din caseta de text ar trebui să fie afișat implicit cu caractere de parolă. Sunt setate două butoane de comandă „Autentificare” și „Schimbare utilizator”.

Când legați elementul comboBox la tabelul „Utilizatori”, în codul formularului apare handlerul de evenimente Form1_Load.

private void Form1_Load (emițător obiect, EventArgs e)

this.usersTableAdapter1.Fill(this.travel agencyDataSet10.Users);

La pornirea aplicației, meniul nu este disponibil. Pentru a vă autentifica, introduceți informațiile de utilizator și faceți clic pe butonul „Autentificare”. Când formularul este încărcat, numele de familie ale utilizatorilor conținute în tabelul Users sunt încărcate în controlul comboBox1. La acest handler sunt adăugate linii care fac meniul inaccesibil, butonul „Schimbați utilizator” și în elementul comboBox1 nu este selectat niciun element:

menuStrip1.Enabled = fals; comboBox1.SelectedIndex = -1;

button2.Enabled=fals;

Figura 1. Vedere a ferestrei principale a aplicației

Când faceți clic pe butonul „Autentificare”, se verifică dacă în tabelul „Utilizatori” există un utilizator cu numele de familie dat și dacă autentificarea și parola sunt introduse corect. Zona de descriere a clasei de formular descrie parametrii trecuți la comanda sql. Aceștia sunt trei parametri: numele de familie al utilizatorului, autentificarea și parola acestuia.

private string parfam, parpasw, parlog;

Următoarea linie este adăugată la spațiul de nume:

folosind System.Data.SqlClient;

// Butonul „Autentificare” faceți clic pe handler de evenimente

șir sql = "";

string connstr = @"Sursa de date= B302CN-8 \TEST_SQL;Initial Catalog=Agenție de turism;Securitate integrată=True";

SqlDataReader cmReader;

parfam = comboBox1.Text; parlog = textBox1.Text;

SqlConnection conn = new SqlConnection(connstr);

sql = „SELECT Nume, Nume de utilizator, Parolă FROM Utilizatori” +

„ UNDE (Nume = @fam) și (Parolă [email protected])";

SqlCommand cmdkod = new SqlCommand(sql, conn);

cmdkod.Parameters.Add(new SqlParameter("@fam", SqlDbType.NChar, 25));

cmdkod.Parameters["@fam"].Valoare = parfam;

cmdkod.Parameters.Add(new SqlParameter("@pasw", SqlDbType.NChar, 10));

cmdkod.Parameters["@pasw"].Valoare = parpasw;

cmdkod.Parameters.Add(new SqlParameter("@log", SqlDbType.NChar, 15));

cmdkod.Parameters["@log"].Value = parlog;

dacă (!cmReader.Read())

MessageBox.Show("Parolă greșită!");

cmReader.Close(); conn.Close();

menuStrip1.Enabled = adevărat; comboBox1.SelectedIndex = -1;

button1.Enabled=fals; butonul2.Activat = adevărat;

textBox1.Text = ""; textBox1.Enabled = fals;

textBox2.Text = ""; textBox2.Enabled = fals;

comboBox1.Enabled = fals;

cmReader.Close();

private void button2_Click (expedător obiect, EventArgs e)

menuStrip1.Enabled = fals; comboBox1.Enabled = adevărat;

textBox1.Enabled = adevărat; textBox2.Enabled = adevărat;

button1.Enabled = adevărat; button2.Enabled=fals;

Descrierea modului în care funcționează handlerul de evenimente pentru clic pe butonul „Autentificare”.

Linia connstr conține șirul de conexiune. Linia sql conține textul interogării generate, începând cu instrucțiunea select, după care sunt listate câmpurile selectate din tabelele care sunt specificate după cuvântul from.

Managerul creează o nouă instanță a obiectului SqlConnection care oferă o conexiune la serverul SQL. Obiectul SqlCommand conține o comandă cu trei parametri pentru a căuta în tabelul Users un utilizator cu numele de familie, numele de utilizator și parola date. Managerul button1_Click deschide o SqlConnection. Apoi, handlerul execută comanda SQL stocată în obiectul cmdkod.

cmReader = cmdcode.ExecuteReader();

Ca urmare a execuției metodei ExecuteReader, este creat un obiect din clasa SqlDataReader, care vă permite să citiți secvențial toate liniile de execuție a comenzii SQL. Pentru eșantionare se folosește metoda SqlDataReader. citit. Dacă tabelul „Utilizatori” nu conține nicio înregistrare cu numele de familie, autentificarea și parola date, atunci metoda cmReader.Read() va returna false. Aceasta înseamnă că a fost introdus un nume de utilizator sau o parolă incorectă. În acest caz, este afișat un mesaj despre datele introduse nevalide, obiectele cmReader și SqlConnection sunt închise. Dacă datele utilizatorului sunt introduse corect, meniul și butonul Modificare utilizator devin disponibile. Butonul „Autentificare” devine indisponibil. Elementele textBox1 și textBox2 sunt șterse și devin inaccesibile. Elementul comboBox1 devine, de asemenea, indisponibil (Figura 2)

Figura 2. Vedere a ferestrei principale după autentificarea utilizatorului

Tabelele și rezultatele interogării vor fi afișate pe controalele DataGridView. Scopul principal al acestor elemente este de a lega tabelele surselor de date externe, în primul rând tabele de baze de date. Pentru comoditatea vizualizării și introducerii de noi intrări, tabelele „Anotimpuri”, „Tururi” și „Permise”, „Plată” vor fi afișate două într-o singură fereastră. Fiecare control DataGridView este asociat cu un tabel corespunzător din baza de date a agenților de turism. În această fereastră, este selectat tabelul „Turiști” (Figura 3). După ce conexiunea este finalizată (făcând clic pe butonul „Finish”), componentele DataSet, BindingSource și TableAdapter apar pe formular. Aceste componente sunt non-vizuale, deci sunt afișate într-un panou suplimentar. DataSet-ul este un obiect specializat care conține o imagine a unei baze de date. Pentru a implementa interacțiunea dintre DataSet și sursa de date reală, se folosește un obiect de tip TableAdapter. Însuși numele acestui obiect - adaptor, convertor - indică natura acestuia. TableAdapter conține metodele Fill și Update, care efectuează un transfer înainte și înapoi de date între DataSet și tabelul stocat în baza de date SQL Server. Metoda Fiil populează DataSet-ul cu date din SQL Server, iar Update actualizează baza de date SQL Server cu date din DataSet-ul local. Componenta BindingSource facilitează legarea controalelor dintr-un formular la date. Proprietatea principală a componentei BindingSource este proprietatea Sursă de date, care indică către sursa de date.

După ce conexiunea tabelelor la sursele de date este finalizată, în codul de program al formularului apare handlerul de evenimente Form2_Load.

private void Form2_Load (emițător obiect, EventArgs e)

this.touristsTableAdapter.Fill(this.agency de turismDataSet9.Tourists);

Când formularul este încărcat, datele conținute în tabelul „Turiști” sunt afișate pe controlul DataGridView din fereastra formularului Form2. Puteți face modificări în tabel și puteți adăuga înregistrări noi. După ce ați făcut modificări, faceți clic pe butonul „Salvați turiștii”. Managerul de evenimente pentru butonul „Salvați turiștii” face clic pe:

private void button1_Click (expedător obiect, EventArgs e)

seasonsTableAdapter.Update(agenție de turismDataSet9);

MessageBox.Show("Date salvate");

Figura 3. Vedere a ferestrei cu tabelul „Turiști”.

Fiecare cerere este afișată într-o fereastră separată. În fereastra Form1, un articol nou cu numele cererii este adăugat în meniul „Solicitări”. Dacă interogarea nu are parametri, este instalat un control DataGridView în fereastra formularului pentru a afișa rezultatele interogării și legat de procedura sau funcția corespunzătoare a bazei de date.

Acest articol oferă câteva metode de dezvoltare a aplicațiilor care funcționează cu baze de date, o modalitate de a organiza accesul pentru a lucra cu un cerc limitat de oameni, modalități de integrare a aplicațiilor Visual C # cu serverul DBMS Microsoft SQL Server 2012. Când utilizați Visual C # limbaj de programare cu SQL, puteți crea aplicații puternice cu o gamă largă de caracteristici. Principalul punct forte al SQL constă în extragerea datelor. Indiferent câte rânduri există într-un tabel, acestea pot fi preluate cu o singură instrucțiune SELECT. În același timp, principalul dezavantaj al limbajului SQL este interfața sa de utilizator subdezvoltată. Folosind limbaje procedurale, puteți crea interfețe convenabile pentru introducerea și vizualizarea datelor. Cea mai comună metodă de a combina SQL cu limbaje procedurale se numește injectare de cod SQL. Instrucțiunea SQL este inserată în locația dorită în programul procedural. Informațiile trebuie să fie transmise între un program scris într-un limbaj procedural și cod SQL. Pentru aceasta se folosesc variabile de bază. Pentru ca SQL să recunoască aceste variabile, acestea trebuie să fie declarate. Variabilele sunt declarate în zona de descriere a clasei de formular înainte de descrierea codului programului. În cod, instanța nou creată a obiectului SqlConnection oferă o conexiune la serverul SQL. Obiectul SqlCommand oferă execuția comenzii SQL încorporat.

Bibliografie:

  1. Allen Taylor. SQL pentru manechine, ediția a 8-a.: Per. din engleza. - M .: SRL „I.D. Williams”, 2014. - 416 p.
  2. Gainanova R.Sh. Dezvoltarea de aplicații pentru lucrul cu baze de date MS SQL Server 2012 // Științe fundamentale și aplicate astăzi: Proceedings of the XI international practice Conference (10-11 aprilie 2017 Noth Charleston, SUA), volumul 3 - p. 34-41.
  3. Frolov A.V., Frolov G.V. Design vizual al aplicațiilor C#. - M.: KUDRITS-OBRAZ, 2003, - 512s.

Aproape fiecare organizație are propria sa bază de date. De ce, chiar și site-urile web le folosesc pentru a face lucrul cu informații mai ușor și mai simplu. Într-adevăr, vă permit să faceți calcule fără probleme, să găsiți rapid datele necesare și, în general, pur și simplu creează ordine în orice informație.

Deseori programatorii sunt implicați în crearea lor, deoarece acesta este un proces complex care este predat în instituțiile de învățământ superior. Există, de asemenea, multe lecții, cursuri și pachete software pentru crearea de software pentru baze de date. Există într-adevăr o mulțime, poate fi ușor să fii confuz. Acest articol se va concentra asupra unora dintre principalele programe pentru dezvoltarea bazelor de date.

Despre SQL

SQL este un limbaj de programare care este folosit pentru a crea baze de date. Dacă îl instalați pe un computer și începeți să creați o bază de date, nu va fi foarte convenabil. Acest lucru se datorează faptului că SQL în sine nu are niciun shell grafic, iar interogările bazei de date trebuie trimise deloc prin linia de comandă. Din acest motiv, au apărut diverse tipuri de programe care simplifică dezvoltarea bazelor de date. Cu toate acestea, învățarea elementelor de bază ale acestei limbi încă merită. Brusc, trebuie să faceți un fel de cerere, dar programul nu funcționează corect.

Microsoft Access

Acest program pentru crearea de baze de date este cu siguranță familiar pentru mulți. La urma urmei, vine cu suita Microsoft Office. Acest program este unul dintre cele mai ușor de învățat, deoarece cunoașterea limbajului de programare SQL nu este practic necesară acolo. Puteți indica doar ce interogare să faceți, iar programul însuși va face o interogare SQL.

Despre relevanța programului. Până acum, bazele de date ale multor organizații au fost realizate folosind Microsoft Access. Într-adevăr, programul în sine este foarte ușor, există o interfață intuitivă. Mai mult decât atât, elementele de bază ale lucrului în Access sunt predate chiar în școală și în cursurile elementare ale colegiului!

PhpMyAdmin

Accesul, desigur, este un program bun, dar dacă aveți nevoie de o bază de date pentru un site, nu va face față. Apoi PhpMyAdmin vine în ajutor. Acesta este un program foarte util pentru crearea bazelor de date. Instalarea pe un computer durează ceva timp, iar în timpul instalării este ușor să faci ceva greșit și nu va funcționa. Prin urmare, atunci când instalați acest program pentru a crea baze de date, trebuie să urmați în mod clar instrucțiunile. Dar un alt plus al PhpMyAdmin este că poate fi accesat și prin Internet sub forma unui site web! De exemplu, aveți un site web care este alimentat de WordPress. Va avea o bază de date. Și dacă aveți un site pe o găzduire bună, atunci, cel mai probabil, lucrul cu bazele de date se va desfășura prin PhpMyAdmin și va fi posibil să îl accesați prin panoul de control al găzduirii.

Un alt program pentru crearea bazelor de date. Este gratuit, dar există și o versiune plătită cu funcții mai bune. Este ușor să creați legături cu tabele în acest program și, în general, este convenabil să lucrați cu acestea. De asemenea, este un plus faptul că puteți afișa baza de date într-o formă grafică. Majoritatea oamenilor, atunci când lucrează cu baze de date, preferă acest program special. În principiu, PhpMyAdmin nu este inferior în ceea ce privește capabilitățile, dar totuși este mai mult conceput pentru a funcționa cu bazele de date ale site-urilor.

În acest articol au fost luate în considerare principalele programe pentru crearea bazelor de date. De fapt, există o mulțime de ele, așa că fiecare își alege un instrument pentru sine, dar dacă tocmai te obișnuiești cu el și vrei să studiezi acest domeniu, atunci este recomandat să lucrezi cu MySQL WorkBench. După ce înveți elementele de bază ale SQL, nu va mai exista o diferență semnificativă pentru tine unde să lucrezi, deoarece interogările sunt aceleași peste tot. De asemenea, este convenabil ca, după ce a creat o bază de date într-un program, să o puteți deschide printr-un alt software, care este, de asemenea, proiectat să funcționeze cu baza de date. Când creați software cu o bază de date, nu puteți face fără aceste cunoștințe. Mai mult, stăpânind SQL, puteți chiar să vă creați propriul software pentru dezvoltarea și editarea bazelor de date.