Połączenie db.mdf, grupowanie tabeli, eksport tabeli do *.csv

Dzisiejszy tutorial jest specjalnie dla osoby która napisała do mnie ostatnio maila o treści:

Witam serdecznie,

Mam prośbę, czy była by możliwość stworzenia turtiala z małym
programikiem? Bo ja znam tylko podstawy VB i próbowałem coś takiego
stworzyć, ale nie za bardzo mi się udało 🙁 A taki turtial pomoże mi to
ogarnąć.

Chodzi mi o taki projekt:
Są dwa przyciski przycisk pierwszy „pobierz dane” i przycisk drugi
zapisz dane.
Pierwszy przycisk łączy się z bazą danych SQL (rozszerzenie MDF) pobiera
dane z tabeli np.”ARTYKUŁ” i tabele którą pobierze, żeby podsumowało w
tabeli przestawnej i wybrało kolumny np. „Numer produktu” i „Dostępność”
(Działanie takie jak w Excelu w Menu „Projektowanie” „Podsumuj w tabeli
przest.”).
Natomiast drugi przycisk, żeby zapisał podsumowaną tabele przestawną do
pliku CSV (kodowanie UTF-8, separator teksu średnik).

Proszę o pomoc

Czekam na szybą odpowiedź
Pozdrawiam

po krótkiej wymianie maili okazało się, że programik jest bardzo prosty (jak dla mnie) a jeśli ktoś coś ciekawego nauczy się z mojego tutoriala to będę naprawdę zadowolony. Postaram się opisać co i jak.

Zaczynamy standardowo od rozpoczęcia nowego projektu, ja wrzuciłem do niego trzy elementy „Button” jeden element „Label” i jeden element „DataGridView” (tam jest jeszcze textbox ale prosze go zignorować).

go1

Wszystko nazwałem i ładnie poukładałem.

go2

 

Nasz program będzie działał następująco:

1. Przyciskamy przycisk „Połącz”.

2.Dostajemy informacje o udanym bądź nieudanym połączeniu a nasz Panel (lampka) zmienia kolor na zielony co oznacza, że połączenie jest otwarte.

3. Przyciskamy przycisk opcjonalnie:

a). „Pokaż” nasza tabela będzie ukazana w DatagridView.

b).  „Eksportuj” nasza tabela o konkretnym kodzie SQL będzie zapisana.

Zaczynamy od połączenia. Przechodzimy do kodu nasze głównej formy ( Ctrl+Alt+0) i wpisujemy powyżej „Public Class Form1”

 

Jeśli nasz „System.Data.SqlClient” świeci się na zielono to trzeba będzie dodać Odwołanie. Robimy to następująco: Po prawej stronie wybieramy „My Project”go5,01

Z lewej strony wybieramy „Odwołanie” i „Dodaj”

go5,1

Potrzebny plik *.dll znajduje się w folderze

C:\Program Files\MySQL\MySQL Connector Net 6.6.2\Assemblies\v4.0

tak jak na obrazku poniżej:

go5,2

 

Przyciskamy „OK” i zielony kolor powinien zniknąć. Następnym etapem będzie ustawienie danych do połączenia, u mnie wyglądało to tak:

Jeśli nie znamy danych służących do połączenia z bazą danych przechodzimy do „Eksporator bazy danych” po lewej stronie:

go3

Wybieramy na górze „Łączenie z bazą danych” (taka wtyczka z plusikiem) pojawi nam się okno konfiguracji:

go4

 

Wypełniamy ją Wybierając Od góry rodzaj połączenia, bazę danych, login, hasło i tabele. Testujemy połączenie, jeśli wszystko zostało dobrze wypełnione powinien pojawić się komunikat o udanym teście jeśli nie to cóż trzeba coś poprawić. Jeśli wszystko poszło dobrze wciskamy „OK” i wybieramy naszą bazę w „Eksplorator baz danych” w prawym dolnym rogu powinny znajdować się właściwości naszej bazy danych i formuła do połączenia:

go5

 

Wystarczy ja skopiować i zastąpić moją swoją. Wracamy do projektora i dwukrotnie przyciskamy przycisk „Połącz”, program powinien przejść do kodu i utworzyć nam łączenie z naszym przyciskiem:

Co tu dużo pisać inicjujemy połączenie do naszego obiektu  „ServerString” wcześniej utworzonego a potem program sprawdza, jeśli połączenie jest zamknięte wtedy je otwiera (czyli łączy sie z bazą danych) wywala wiadomość, że wszystko się udało i zmienia kolor panel1 na zielony jeśli nie wywali komunikat, o błędzie.

Wygląda to mniej więcej tak

go6

Teraz możemy odpalić nasz program i zobaczyć czy działa łączenie.

Teraz wprowadzimy sobie opcje przerzutu tabeli do „DataGridView”. W naszym DataGridView dodajemy cztery kolumny (Moja baza danych ma Pięć elementów:

Bez tytułu

 

ale wyświetlić chce tylko cztery):

go9

 

Mamy przygotowane podłoże na naszą tabele. Teraz należy skomponować formułę SQL. Jeśli nie mamy pojęcia jak to zrobić, kierujemy wzrok na lewą stronę monitora i otwieramy „Źródła Danych” i wybieramy „Dodaj nowe źródło danych” podłączamy naszą bazę danych. Po podłączeniu wracamy do „Źródła Danych” i wybieramy „Edytuj obiekty Dataset przy pomocy projektanta”:

go6,1

 

Jeśli ktoś będzie miał wielkie z tym problemy zapraszam do przeczytania jakiegoś wcześniejszego tutoriala. Wybieramy konfiguruj:

go6,2

 

Konstruktor zapytań:

go6,3

 

Następnie otworzy nam się okno w którym możemy testować swoje zapytania:

go7

 

Na potrzeby tego tutoriala moje zapytanieSql będzie takie:

go8

 

Kopiujemy sobie tą formułe. Wracamy do projektanta. Przyciskamy dwukrotnie przycisk „Pokaż” na naszej Formie co powoduje przejście do kodu i utworzenie Suba Button2.

Najpierw inicjujemy potrzebne na zmienne:

następnie jeśli połączenie jest otwarte:

formuła powinna nawiązać z nią połączenie

wypełniamy tabele.

Wypełniamy nasz DataGridView. Najistotniejsza formuła w kodzie powyżej to:

Ponieważ przenosi nam nasze dane do DatagridView na podstawie ich nazwy, tzn jeśli w formuleSql mam nazwę kolumny „Zamowiono” to najpierw określam do której kolumny chce te dane przesłać a potem jak nazywa się ta kolumna. trzeba pamiętać, że kolumny liczone są od 0 i, że taka forma przeniesienia danych nie utworzy nam nowych kolumn tak więc jeśli w formule Sql mamy cztery kolumny a w DataGridView tylko trzy może to powodować wystąpienie błędu więc najlepiej pisać zapytanieSql z głową ale jeśli jakieś dane jak „ID” są wymagane a nie potrzebne można je zaimportować do kolumny a „visible” kolumny ustawić na „false”. u mnie wyglądało to tak:

go10

Jeśli wpisaliście kod i pozmienialiście go prawidłowo czyli dodaliście nowe kolumny tak aby pasowały do waszej bazy danych wszystko jest cacy odpalamy program i testujemy.

Teraz czas na eksport bazy do *.csv

Wracamy do projektanta i dodajemy „Open File dialog”:

go11

Przenosimy go na naszą forme.

go12

 

W lewym dolnym rogu pojawi się ikonka „OpenFileDialog1”.

Teraz przechodzimy do kodowania. Musimy napisać funkcje która będzie naszą tabele zamieniała na plik tekstowy:

W miejscu:

Mamy opcje separatora, w tym wypadku naszym separatorem jest „,” jeśli chcemy aby to była jakaś specjalna formuła np: Tab wpisujemy w tym miejscu „ControlChars.Tab” więcej danych można znaleść w internecie. Jeśli chcecie zobaczyć przykład zapraszam tutaj.

Teraz wystarczy wrócić do naszego projektanta i przycisnąć dwukrotnie przycisk „Eksportuj” a jego Suba wypelniamy:

Robimy to samo co wcześniej z importem do DatagridView, inicjujemy takie same zmienne i wypełniamy je danymi. Używamy OpenFileDialog aby określić lokalizacje zapisu pliku, jego nazwę i rozszerzenie wypełniamy tabele danymi a następnie tą tabele wykorzystujemy w funkcji „data_to_txt” Wygląda to tak:

go13

Na podstawie tego napisałem program dodając Textboxy aby każdy kto go odpali mógł połączyć się ze swoją bazą danych i wpisać własne zapytanie SQL wygląda to tak:

go

Odwolania do textboxów są proste więc każdy powinien skapnąć się co jest grane.

Jeśli chcemy dodać nagłówki kolumn należy do naszej funkcji data_to_txt dodać pętle

Całość będzie wyglądać tak:

Do pobrania tutaj: GrupowanieTabeli

 

Permalink do tego artykułu: https://visualmonsters.cba.pl/polaczenie-db-mdf-grupowanie-tabeli-eksport-tabeli-do-csv/

Dodaj komentarz

Twój adres email nie będzie publikowany.