import pliku do bazy danych/eksport pliku z bazy danych (update)

Jest to dodatek do artykułu:

https://visualmonsters.cba.pl/index.php/import-pliku-do-bazy-danycheksport-pliku-z-bazy-danych/

Dostałem ostatnio pytanie, czy mógłbym opisać jak dane pobrane z zewnątrz wpisać do bazy danych. Będziemy bazować na projekcie z tamtego przykładu. Pobiera on dane tylko do podglądu w DatagridView. Prośba polegała na tym, aby opisać metodę dodawania danych pobranych z pliku do bazy danych. Jako iż nie mam takiej bazy danych jak na przykładzie, muszę dodać ją lokalnie i pokażę wam dwa sposoby takiej operacji.

Dodaje lokalną bazę danych:

Dodaje tabele i jej pola rozwijając zakładkę eksploratora serwerów:

Teraz utworzę tabelę taką jak na obrazku:

Uwaga, jeśli korzystacie z mojego przykładu, pamiętajcie, aby ustawić wiersz „Id” na „IDENTITY” aby automatycznie się aktualizował, w innym wypadku będziemy musieli aktualizować go ręcznie. Kiedy wypełnimy już wszystkie pola, wciskamy „Update” i gotowe. Zmieniłem trochę wygląd głównego okna programu:

Nic specjalnego, dodałem dwa przyciski i tabelę z dodanymi już kolumnami. Pierwsza kolumna wyświetli automatycznie tworzony id a druga jeden z dodanych elementów (Nr pr). Jeśli wszystko pójdzie dobrze, na początku nasza baza danych będzie pusta, a po imporcie i dodaniu do tabeli elementów będzie wypełniona danymi. Ja dodałem lokalną bazę danych, ten element może się różnić w zależności od tego, jaką bazę danych wykorzystujemy, czy to jest baza danych MSSQL, Oracle, OLEDB czy co tam macie. Należy zaimportować odpowiedni składnik. Ja korzystam z bazy danych *.mdf, czyli muszę zaimportować składnik:

Teraz muszę stworzyć połączenie:

Gdzie (Data Source=(LocalDB)\MSSQLLocalDB) oznacza rodzaj bazy danych a (AttachDbFilename=|DataDirectory|\db.mdf) jej lokalizację, reszta elementów ma różnorakie znaczenie. Jeśli ich nie dodamy, będą ustawione automatycznie. Ja je dodałem, aby pokazać wam, że coś tam jeszcze jest co można edytować. Najpierw sprawdzimy sobie, czy nasze połączenie hula:

Jeśli wszystko działa, to nasza aplikacja po prostu się włączy, jeśli coś jest nie tak, wtedy dostaniemy komunikat o błędzie. Teraz gdy mamy już gotowe połączenie, należy dodać uchwyt do przycisku „Dodaj dane do bazy danych”. Doda on dane do bazy danych.

Tak to będzie wyglądać:

Bez sensu dodawać coś, co nie pasuje, bez sensu również przerywać pętle, aby nie dodać pasujących elementów. Można też zmodyfikować zdarzenie tak, aby dodawać tylko zaznaczone wiersze:

Efektem będzie dodanie tylko zaznaczonych wierszy:

Dobra teraz został ostatni przycisk, który wyświetli zaimportowane elementy. Abyśmy wiedzieli, że coś tam zostało dodane do bazy danych. tak jak na obrazku powyżej. Będzie on realizował zapytanie tak jak przycisk dodający elementy:

Jeśli nie podoba nam się kolejność dodawania zaznaczonych elementów, można przekształcić pętle:

 

Elementy będą dodawane wtedy prawidłowo. No i to by było na tyle, jeśli chodzi o ten sposób.

Projekt do pobrania tutaj: Import Eksport plikow (1)


Drugi sposób jest taki bardziej mechaniczny.

Teraz klikamy głównie dalej i wybieramy nazwy i elementy do dodania, wszystko powinno być opisane w kreatorze, więc nie powinno sprawić wam problemów:

Teraz gdy już mamy źródło danych, dodajemy je na formę:

Będziemy na bieżąco podglądać czy wszystko jest ok. Nasza tabela jest chwilowo pusta, ale zaraz to zmienimy. Wracamy do zdarzenia dla przycisku dodającego elementy do bazy danych. Powyższe elementy robimy po to aby pozyskać „TableBindingSource” i „TableTableAdapter” które wykorzystamy do pracy. Nie będzie to skomplikowane.

Kod dodający tylko wybrane wiersze:

Wygląda to tak:

Jak zmienić kolejność dodawania zaznaczonych wierszy, podawałem w pierwszym przykładzie. Pełen projekt do pobrania tutaj: Import Eksport plikow (2)

Na koniec taka jeszcze uwaga dla was, podczas budowania aplikacji z lokalną bazą danych, baza będzie tworzona na nowo. Tak więc po zbudowaniu bazy danych, jeśli chcemy zachować elementy bazy danych utworzone w czasie tworzenia aplikacji, należy ją skopiować z folderu „(…)\Import Eksport plikow\WindowsApplication3\WindowsApplication3\bin” i z tego folderu uruchamiać aplikację, ponieważ będzie ona nadpisywana nową. Można również odłączyć ją po pierwszym utworzeniu w opcjach projektu (tylko jeśli już jest utworzona):

Jeśli nadal baza danych będzie się nadpisywała, skopiuj ją i plik log gdzieś w bezpieczne miejsce.

 

 

Permalink do tego artykułu: https://visualmonsters.cba.pl/import-danycheksport-update/

Dodaj komentarz

Twój adres email nie będzie publikowany.