1 / 42

BAZELE PROGRAM Ă RII PE OBIECTE VISUAL BASIC .NET

BAZELE PROGRAM Ă RII PE OBIECTE VISUAL BASIC .NET. Conf univ dr Botezatu Cezar UNIVERSITATEA ROMÂNO AMERICANĂ Anul I LICENȚĂ IM. LUCRU CU OleDb Exemplu prin Leg ă tura cu o baz ă de date MS Access. OLE DB.

geoff
Télécharger la présentation

BAZELE PROGRAM Ă RII PE OBIECTE VISUAL BASIC .NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BAZELE PROGRAMĂRII PE OBIECTEVISUAL BASIC .NET ConfunivdrBotezatuCezar UNIVERSITATEA ROMÂNO AMERICANĂ Anul I LICENȚĂ IM

  2. LUCRU CU OleDb Exempluprin Legătura cu o bază de date MS Access

  3. OLE DB Firmeletrebuiesăpoatăbeneficia de avantajeleoperării cu baze de date nu doar la accesareainformațiilorprinintermediulunui SGBD, darși din altemedii. Pentru aceasta a fostcreatOLE DB. PrefixulOLEeste un acronimpentruObject Linking and Embedding, o tehnologiedezvoltată de Microsoft la începutulanilor ‘90 cepermiteimportulșiexportul de date cătresaudinsprefișieresauaplicațiipentru a realizadocumentecompuse, complexe. OLE poateiniția o conexiuneși cu un fișiersau document, fărăsămai fie necesarcaacestasă fie deschis de o aplicațieproprietară.

  4. OLE DB • OleDbreprezintă un set de interfețeComponent Object Model(COM), cu rolul de a pune la dispoziție un sistem de gestiune al dateloravândsursesaudepozite de date variate. • Suntnecesaredouătipuri de obiecteCOMpentru a conectaaplicația client de furnizorul de date: obiectele de tip sursă (”data source objects”)șiobiectele de sesiune(”session objects”).

  5. OLE DB Este important să fie diferențiatobiectulsursă de date de sursa de date în sine. Obiectuldata sourcefurnizează date către client șireprezintădoarinterfațadintreclientșifurnizor, dateleexistândstocatedoarînsursa de date. O sursă de date poate fi un fișier de tip CSV (Comma Separated Value), un SGBD(Sistem de Gestiune a Bazei de Date), o resursăpe Internet, o variabilătablouaflatăînmemorie, etc.

  6. OLE DB Pentruconectarea la un furnizorOleDb, un client trebuiesăcreezeșisăinițieze o instanță a obiectuluisursă de date (săstochezeîn cache o copie a sursei) aparținândfurnizorului. Aceastăinstanțăpoate fi apoiutilizatăpentru a genera un obiect de tip sesiune, cemediazătranzacțiile, interogărileșiînregistrările. Ciclulprelucrărilor înaplicațiecuprindeurmătoareleetape: 1.Conectarea la sursa de date

  7. OLE DB 2.Pregătirea aplicațieipentru a primi date 3.Transferul datelorcătreaplicație 4.Afișarea datelorînformulare 5.Modificarea datelorînaplicație 6.Validarea datelor 7.Salvarea datelor

  8. OLE DB OleDbConnectioneste o clasăceasigură o legăturăunică la sursa de date. Utilizare: • Dim textConectare as String • Dim instanțăConAs New OleDbConnection(textConectare) • textConectarepoateavea diverse forme, înfuncție de tipulsursei de date la care se conectează.

  9. OLE DB Exemple: • Conectare la o bază de date Oracle: textConectare="Provider=MSDAORA;DataSource=ORACLE8i7; _Persist Security Info=False;Integrated Security=Yes„ • Conectare la o bază de date Access: textConectare="Provider=Microsoft.Jet.OLEDB.4.0;DataSource= _ d:\vb\ProiectAccess.mdb"

  10. OLE DB • Conectarela o bază de date SQL: textConectare="Provider=SQLOLEDB;DataSource=(local);Integrated Security=SSPI" • Pentruînchidereauneiconexiuni se utilizează: instanțăCon.Close() –închidecoexiuneacătresursa de date șianuleazamodificărileefectuate de tranzacțiileîn curs; • iinstanțăCon.Dispose() –elibereazăresurselerezervate de conexiune.

  11. OLE DB DataSeteste un obiectcegenereazăînmemoria RAM tabeleîn care se pot stocatemporarinformațiidintr-o bază de date pentru a fi folositeînaplicațiaproiectată. Astfel, se poatelucra cu datelechiardacăprogramul s-a deconectat de la baza de date. Dataset-ulrețineschimbărileefectuateasuprainformațiilor, astfelcăpoaterealizaactualizareabazei de date la conectarea cu aceasta.

  12. OLE DB Structuraobținută prin DataSetestesimilarăuneibaze de date relaționale: un model ierarhic de tabele, rânduri, coloane, constrangerișirelații. Constructor: • Sintaxa:DataSet() • Descriere: • Declarare: DimdataSet1AsDataSet = NewDataSet

  13. OLE DB Sintaxa:DataSet(nume As String) Descriere: Inițializează o nouă instanță DataSet cu un anumit nume. Numele este necesar în schema reprezentării Dataset-ului în XML, numele fiind elementul rădăcină Declarare: • DimnumeDataSetAs String • DimdataSet2As New DataSet(numedataSet)

  14. OLE DB Sintaxa:DataSet(SerializationInfo,StreamingContext) Descriere: SerializationInfo–datelenecesarepentru a serializasaudeserializa un obiect • StreamingContext–sursașidestinațiaunui stream serializat. Declarare: • DiminfoAsSerializationInfo • DimcontextAsStreamingContext • DimdataSet3As New DataSet(info, context)

  15. OLE DB Sintaxa:DataSet(SerializationInfo, StreamingContext,Boolean) Descriere: Parametrul de tip Boolean specificădacădeclarareaunuiDataSetva conduce și la construireaschemeiacestuia. Declarare: • DiminfoAsSerializationInfo • DimcontextAsStreamingContext • DimConstructSchemaAsBoolean • DimDataSet4As NewDataSet(info,contextConstructSchema)

  16. OLE DB PentruDataSetmenționăm un set minim de proprietățișimetode: • instanțăDataSet.Tables[] –proprietatecereturneazăcolecția de tabele din DataSet sub forma unuiobiect de tip DataTable. • instanțăDataSet.HasChanges([DataRowState]) – funcțieceindicădacădataSet-ul a suferitmodificări de tipulinserare, ștergeresaumodificare a înregistrărilor(rândurilor).

  17. OLE DB DacăparametrulDataRowStateare valoare, atuncise face o filtrare a rezultatuluidupăvaloareaacestuia; • instanțăDataSet.AcceptChanges() – Salveazătoatemodificărileînbaza de date realizateînDataSet, de la momentulîncărcăriisau de la ultimalansare a functieiAcceptChanges.

  18. OLE DB • DataTableeste o clasă a căreiinstanțăreprezintă un tabelreținutînmemoria cache. • Proprietățișimetodefrecventutilizatesunturmătoarele: • columns –returneazăcolecția de coloane din tabel • rows –returneazacolecția de rânduri din tabel. Metoda Add a proprietății rows permiteadăugareaunuirândînDataSet.

  19. OLE DB • newRow–returnează un obiect de tip dataRow cu aceeașistructură cu tabelul (un rândgol) DataAdaptereste un obiectutilizatpentruintermediereaschimbului de date întrebaza de date și dataset. Înfuncție de sursa de date, putemavea: • OleDbDataAdapter, cândsursaestecompatibilă cu modelul OLE DB • SqlDataAdapter, cândsursaeste o bază de date SQL • OdbcDataAdapter, obiectoptimizatpentruaccesul la surse de date ODBC • OracleDataAdapter, pentruaccesul la baze de date ORACLE

  20. OLE DB Constructor: SintaxaDataAdapter() DescriereInițializează o nouăinstanță a claseiDataAdapter Declarare DiminstantaAs NewDataAdapter() SintaxaDataAdapter(DataAdapter) DescriereInițializează o nouă instanță a unei clase DataAdapter dintr-un obiect de același tip Declarare • DimobiectInitialAsDataAdapter • DiminstanceAs NewDataAdapter(obiectInitial)

  21. OLE DB SintaxaOleDbDataAdapter(String, OleDbConnection) DescriereInițializează o nouă instanță a unei clase DataAdapter pentru o sursă de date OLE DB. Parametrul de tip String reprezintă o comandă sau o procedură stocată SQL, iar parametrul OleDbConnectioneste o un obiect de conectare la o sursa de date.

  22. OLE DB Declarare • DimselectCommandTextAsString • DimselectConnectionAsOleDbConnection • DiminstanceAs NewOleDbDataAdapter (selectCommandText,selectConnection)

  23. OLE DB SintaxaFill(DataSet) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet cu cele din sursa de date. SintaxaFill(DataSet,String) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet, din tabeluldat de parametrul String. Declarare • DiminstanceAsDbDataAdapter

  24. OLE DB • DimdataSetAsDataSet • DimsrcTableAs String • DimreturnValueAs Integer returnValue = instance.Fill(dataSet, srcTable) SintaxaFill(DataTable,IDataReader) DescriereAdaugă sau actualizează înregistrările dintr-un DataTable (obiectul tabel reținut în DataSet) cu înregistrările dintr-un tabel al sursei de date cu același nume cu DataTable.

  25. OLE DB SintaxaFill(DataSet) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet cu cele din sursa de date. SintaxaFill(DataSet,String) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet, din tabeluldat de parametrul String. Declarare DiminstanceAsDbDataAdapter DimdataSetAsDataSet DimsrcTableAs String DimreturnValueAs Integer returnValue = instance.Fill(dataSet, srcTable) SintaxaFill(DataTable,IDataReader) DescriereAdaugă sau actualizează înregistrările dintr-un DataTable (obiectul tabel reținut în DataSet) cu înregistrările dintr-un tabel al sursei de date cu același nume cu DataTable. Pentru transmisia de date se folosește un obiect IdataReader. Pentruștergereașieliberarearesurselorocupate de un DataAdapter se folosestecomandadataAdapter.Dispose(). OleDbCommandBuilderare carolactualizareabazei de date cu modificărileapăruteîn dataset.

  26. OLE DB SintaxaFill(DataSet) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet cu cele din sursa de date. SintaxaFill(DataSet,String) DescriereAdaugăsauactualizeazaînregistrările (rândurile) din DataSet, din tabeluldat de parametrul String. Declarare DiminstanceAsDbDataAdapter DimdataSetAsDataSet DimsrcTableAs String DimreturnValueAs Integer returnValue = instance.Fill(dataSet, srcTable) SintaxaFill(DataTable,IDataReader) DescriereAdaugă sau actualizează înregistrările dintr-un DataTable (obiectul tabel reținut în DataSet) cu înregistrările dintr-un tabel al sursei de date cu același nume cu DataTable. Pentru transmisia de date se folosește un obiect IdataReader. Pentruștergereașieliberarearesurselorocupate de un DataAdapter se folosestecomandadataAdapter.Dispose(). OleDbCommandBuilderare carolactualizareabazei de date cu modificărileapăruteîn dataset.

  27. OLE DB Pentru transmisia de date se folosește un obiect IdataReader. Pentruștergereașieliberarearesurselorocupate de un DataAdapter se folosestecomandadataAdapter.Dispose(). OleDbCommandBuilderare carolactualizareabazei de date cu modificărileapăruteîn dataset.

  28. OLE DB Funcționalitateatuturorcomponentelormaisusmenționatepoate fi mai bine exemplificatăîncadruluneiaplicații: Să se realizeze un registru de evidență a persoanelor la nivel național, utilizând o bază de date în Access. Rezolvare: • Proiectulconținedouăforme, prima care conținelista de persoaneșicealaltăce conținedetaliidespre o persoanăselectată din listă.

  29. OLE DB Formelesuntproiectateastfel: frmMain: Obiectulcevaafișaînregistrăriledin baza de date este de tip DataGrid Observație: Pentru a adăuga elementul DataGrid, dacă nu există în Toolbox, trebuie inclusă clasa DataGrid (Tools ->ChooseToolBoxItems...)

  30. OLE DB frmPersoana:

  31. OLE DB Baza de date Evidenta cu tabela Persoane, va fi realizată în Access și va avea următoarea structură: Public ClassOperatiiEvidenta ……. Private FunctionGetConnection() As OleDb.OleDbConnection 'functiede returnare a unei conexiuni cu baza de date ……. End Function

  32. OLE DB Public OverloadsFunctionGetPersoane() As DataSet 'Supraincarcareafunctiei de returnare a listei de persoane din baza de date. 'Returneaza o lista ordonata dupa numele de familie intr-un obiect DataSet, in cazul in care este lansata fara parametrii ……. End Function

  33. OLE DB Public FunctionGetPersoana(ByValid As Integer) AsDataSet 'returneaza o inregistrare completa din tabela Persoane, dupa id-ul transmis ……. End Function Public FunctionGetPersoanaNoua() As DataSet 'Insereaza o noua persoana ……. End Function

  34. OLE DB Public Sub SavePersoane(ByValds As DataSet) 'salvarea inregistrarilor din DataSet in Baza de Date ……. End Sub Public Sub SavePersoana(ByValds As DataSet) 'salvarea modificarilor realizate in fereastra de Detalii Persoana ……. End Sub Public Sub New(ByValsCaleFisier As String) ……. End Sub End Class FișierulfrmMain.vbconțineurmătoarelelinii de cod: Public ClassfrmMain ……. Friend Sub LoadData() 'functia de populare a obiectului DataGriddgPersoane ……. End Sub Private Sub btnIncarca_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnIncarca.Click 'functia pentru evenimentul de click al butonului Incarca ……. End Sub Private Sub btnShowDetalii_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnDetaliiPers.Click 'functia pentru evenimentul de click al butonului Detalii Persoana ……. End Sub ProtectedOverrides Sub OnLoad(ByVal e As System.EventArgs) 'supraincarcareafunctieiOnLoad ……. End Sub Private Sub btnNou_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnNou.Click 'functia pentru evenimentul de click al butonului Adauga ……. End Sub Private Sub btnSterge_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSterge.Click 'functia pentru evenimentul de click al butonului Sterge ……. End Sub Private FunctionGetNameFromDataRow(ByValdr As DataRow) AsString 'functie de returnare a primului nume nenul ……. End Function End Class FisierulfrmPersoana.vbconțineurmătorul cod: Public ClassfrmPersoana ……. Public Sub LoadData(ByValds As DataSet) 'functia de transmitere a datelor catrecampurile din fereastra Detalii Persoana ……. End Sub Private Sub btnClose_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnClose.Click 'functia pentru evenimentul de Click pentru butonul Inchide ……. End Sub Private Sub btnSave_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSave.Click 'functia pentru evenimentul de Click pentru butonul Salveaza ……. End Sub End Class

  35. OLE DB Public Sub New(ByValsCaleFisier As String) ……. End Sub End Class Public ClassfrmMain ……. Friend Sub LoadData() 'functia de populare a obiectului DataGriddgPersoane ……. End Sub

  36. OLE DB Private Sub btnIncarca_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnIncarca.Click 'functiapentru evenimentul de click al butonului Incarca ……. End Sub Private Sub btnShowDetalii_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnDetaliiPers.Click 'functia pentru click al buton Detalii Persoana ……. End Sub

  37. OLE DB ProtectedOverrides Sub OnLoad(ByVal e As System.EventArgs) 'supraincarcareafunctieiOnLoad ……. End Sub Private Sub btnNou_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnNou.Click 'functiapentru evenimentul de click al butonului Adauga ……. End Sub

  38. OLE DB Private Sub btnSterge_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSterge.Click 'functiapentru evenimentul de click al butonului Sterge ……. End Sub Private FunctionGetNameFromDataRow(ByValdr As DataRow) AsString 'functiede returnare a primului nume nenul ……. End Function End Class

  39. OLE DB Public ClassfrmPersoana ……. Public Sub LoadData(ByValds As DataSet) 'functia de transmitere a datelor catrecampurile din fereastra Detalii Persoana ……. End Sub Private Sub btnClose_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnClose.Click 'functiapentru evenimentul de Click buton Inchide ……. End Sub

  40. OLE DB Private Sub btnSterge_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSterge.Click 'functia pentru evenimentul de click al butonului Sterge ……. End Sub Private FunctionGetNameFromDataRow(ByValdr As DataRow) AsString 'functie de returnare a primului nume nenul ……. End Function End Class FisierulfrmPersoana.vbconțineurmătorul cod: Public ClassfrmPersoana ……. Public Sub LoadData(ByValds As DataSet) 'functia de transmitere a datelor catrecampurile din fereastra Detalii Persoana ……. End Sub Private Sub btnClose_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnClose.Click 'functia pentru evenimentul de Click pentru butonul Inchide ……. End Sub Private Sub btnSave_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSave.Click 'functia pentru evenimentul de Click pentru butonul Salveaza ……. End Sub End Class

  41. OLE DB Private Sub btnSave_Click(ByValsender As System.Object, ByVal e As System.EventArgs) HandlesbtnSave.Click 'functia pentru evenimentul de Click pentru butonul Salveaza ……. End Sub End Class

  42. CURS 10: END

More Related