10.10. - Primeri povezivanja na bazu podataka (MS SQL i MySQL)
Linkovi ka celinama koje radimo:
- vežba uz prvi VIDEO snimak 2. čas - prvi deo - Povezivanje aplikacije i baze podataka Drugi deo : vežba uz drugi VIDEO snimak
1.cas - MS SQL - baza kao servis u projektu
Kako da napravite SQL bazu (kao servis) koriateći samo onaj SQL server koji dolazi uz Visual Studio :
Kao osnovu koristimo sledeći video snimak sa Youtube-a, a koraci koji su u nastavku su karakteristični za Visual Studio 2010 - starije varijante koje imamo u učionicama u školi:
- Napraviti novu aplikaciju (Windows Forms aplikacija, u svom folderu, pod nazivom Projekat2 ili Zadatak2)
- U tu aplikaciju ubaciti novu bazu - kao servis, u kojoj na početku nema ništa. Koraci su u nastavku:
- U Server Exploreru - desni klik na naziv projekta -> Add-> New Item -> Service-based Database
- Ostavite naziv koji vam se predlaže (Database1.mdf) ->Next -> ostavite opciju DataSet ->Next ->Finish
- Idite na Formu. U meniju odaberite View->Server Explorer (ako ovo ne vidite nigde sa strane) da biste videli sve servere i sve konekcije koje su vam dostupne.
- Dalje nastavljate kao po videu od 1:35 ....
- Ispred vaše konekcije bi trebalo da je strelica -> proširite da vidite šta sve imate
- Klik na Tables - Desni klik miša -> kreirajte novu tabelu u kojoj imate id, ime i prezime
- Id postavite da je primarni ključ (desni klik miša->Set as Primary key)
- Sačuvajte tabelu (desni klik miša na naziv tabele i ->Save Table As..)
- Vratite se na formu, pa iz menija na vrhu, Data ->Show DataSources .....
- U tom polju, desnim klikom miša dodajte novi izvor podataka, koji je vaša baza sa svim tabelama u njoj ....
- Tabelu samo prevucite na formu
- klik na naziv tabele, odaberite Details, pa prevucite tabelu na formu
- ponovo klik na strelicu, odaberite DataGridView i prevucite tabelu na formu
- videćete Binding Navigator na vrhu - strelice i sve ostalo
- pokrenite aplikaciju
- Igrajte se - ubacujte podatke,
- zaustavite aplikaciju
- klik na naziv tabele, odaberite Details, pa prevucite tabelu na formu
- .....
U nastavku je video (bosanski), u kojem se radi sa Visual Studio 2013 - princip je sličan za sve verzije:
Visual Studio 2013 C# - Baza podataka (8)
2. čas - prvi deo - Povezivanje aplikacije i baze podataka
U daljem radu ćemo koristiti povezivanje na postojeće baze podataka.
Ovaj primer radimo sa MySQL bazom .....
Koraci po kojima radimo:
- Pokrenuti XAMPP - Apache i MySQL - proveriti imate li bazu podataka koju biste koristili (world ili po izboru nastavnika)
- Kreirati novi projekat u VS
- Pošto MySQL nema ugrađenu podršku, prvo se postavlja referenca na potrebne dodatke za to:
- desni klik na References ispod naziva projekta u Solution Explorer-u i dodati referencu na MySql (deo .Net, odabrati MySql.Data)
- Zatim dvoklikom na formu kreirati šablon za Form1 Load događaj - šta se dešava prilikom pokretanja (load forme)....
- Da bi uopšte mogli da radimo sa MySQL-om, na vrhu se dodaje using MySql.Data.MySqlClient; (direktno ispod ostalih using.... )
- Sada ćemo da pristupimo odabranoj bazi i da iz jedne njene tabele prikažemo sadržaj u komponenti DataGridView
- Prvo na formu postaviti komponentu DataGridView,
- promeniti joj ime radi kraćeg pisanja na dwg
- vratiti se u deo gde se piše programski kod i tamo dodati deo za pristup bazi podataka
Objašnjenje:
Prvo se kreira konekcioni string - string kojim govorimo kako stići do baze:
string konekcioniString = "server=localhost;user id=root;password=;database=MojaOdabranaBaza";
vodite računa da se umesto teksta MojaOdabranaBaza piše naziv vaše baze koja postoji na serveru (world)!
Zatim se kreira konekcija :
MySqlConnection konekcija = new MySqlConnection(konekcioniString);
Naravno, trebaće nam i tabela u koju ćemo da smestimo podatke - koristimo objekat klase DataTable:
DataTable TABELA = new DataTable();
To što ste kreirali konekciju ne znači i da ste pristupili bazi. Da bi to uradili treba da se konekcija otvori - da se poveže sa bazom koja je na MySQL serveru koji radi - proverite da li vam je pokrenut MySQL server i da na njemu imate bazu kojoj želite da pristupite (world).
Otvaranje konekcije, tj povezivanje sa bazom se vrši na sledeći način:
konekcija.Open();
Komponenta koju ćemo koristiti može da preuzme jednu ili više tabela u celosti - to je DataAdapter (pošto ovaj put koristimo MySql onda se to dodaje ispred).
MySqlDataAdapter DA = new MySqlDataAdapter("SELECT * FROM MojaTabela", konekcija);
(naravno, umesto MojaTabela, pišete naziv tabele koju KORISTITE)
DA.Fill(TABELA); // ono što ste dobili ubacujete u vašu tabelu koju ste malopre napravili
dwg.DataSource = TABELA; // ta tabela je izvor podataka za komponentu DataGridView
konekcija.Close(); // Na kraju treba zatvoriti konekciju ! - Prvo na formu postaviti komponentu DataGridView,
-
Ako se desi da se pojave greške / izuzeci , ... i da se čak i sa ispravkom u stvari ne može pristupiti bazi, najverovatniji je razlog što konekcija nije zatvorena. Na primer, ako se konekcija otvori, pa nešto radi, i program "pukne", konekcija i dalje ostaje otvorena, i imamo problem!
Zbog toga se koristi try ... catch ... finally !
U try delu se radi sve što treba sem zatvaranja konekcije, u catch delu se radi obrada izuzetaka, a u finally se zatvara konekcija, jer je to deo koji će da se izvrši bez obzira je li bilo izuzetaka ili nije.
2 deo: vežba (uz korišćenje video snimka)
U nastavku je jednostavan primer kako povezate aplikaciju u Visual Studio Community 2019 sa MySQL bazom world:
- koristimo DataAdapter ! -