[ vux.elfak @ 06.08.2007. 10:46 ] @
| E ovako. Radio sam neki projekat (za videoklub) u Visual C# 2005 i Firebird bazom podataka. Posto sam tek pocinjao da ucim C# i rad sa bazama, to sam odradio na glup nacin.
E sad mene interesuje da li neko moze da mi pomogne u vezi sa bazama podataka. Da li treba da koristim jedan DataSet za sve tabele u aplikaciji ili ne? Treba li da napravim posebnu klasu za rad sa bazom, ili u okviru svake klase (klasa za clana, klasa za film,...) da koristim pristup bazi podataka?
Nadam se da me je neko razumeo. Ako neko ima neki primer sa posebnom klasom za pristup bazi, ako moze da mi posalje.
Hvala unapred |
[ MarkoBalkan @ 06.08.2007. 16:36 ] @
najbolje ti je koristiti sql upit, za ovaj tvoj slucaj.
[ Prokleta_Nedelja @ 07.08.2007. 09:49 ] @
Pa dataset i jeste posebna klasa
ja to ne bih komplikovao
koristi dataadapter da napunis tabele u datasetu. Jednostanvno. Tu imas sve sto ti je potrebno.
[ prog @ 07.08.2007. 11:30 ] @
Koliko sam te ja skonto, i iz nekih mojih iskustava, preporucio bih ti sljedece:
1. Koliko DataSet klasa (to je bilo jedno pitanje) - kao i sto samo ime govori, formiraj onoliko dataset klasa koliko zelis, neces puno ustedjeti od toga jer ionako se tu zapisuju samo sseme tabela, query-ja stored proc i sl. Ali U svakoj DataSet klasi stavi one tabele i one upite koji su logicki povezani, i koje ces lakse kasnije moci odrzavati. Ne preporucujem ti da sve tabele i druge objekte trpas u jednu klasu dataseta, jer ces se poslije izgubiti i neces tacno znati (iz rukava) kome sta pripada.
2. manipulacija sa bazom podataka (insert, update): to ti ovisi s kojim providerom radis. Maximalno iskoristi one koji ti dizajner nudi. Lijepo je raditi sa stored procedures, mada i formiranje queryja za manipulaciju nije lose raditi. Svakako sav SQL kod trpaj u datasetove. Nemoj ga rasipati po cijelom kodu u aplikaciji. Kada pravis queryje cinih ih sto laksim i sto jednostavijim. Bolje je da imas dva jednostavna umjesto jednog slozenog.
Ovo su neke od preporuka koje bih ti ja savjetovao, sto ne znaci da je i najbolje rijesenje.
[ vux.elfak @ 07.08.2007. 13:25 ] @
Hvala na odgovoru. Evo postavio sam deo koda za dve forme (forma za evidenciju clanova i forma za evidenciju filmova). Samo mi reci da li je kod u redu, i da li mogu da nastavim da ga koristim.
frmClan
private void frmClan_Load(object sender, EventArgs e)
{
conn = new MySqlConnection("SERVER=localhost;UID=root;PWD=;DATABASE=provideo");
daClanovi = new MySqlDataAdapter("SELECT * FROM clan", conn);
daClanFilm = new MySqlDataAdapter("SELECT iznajmljeni.clan, film.broj_filma, film.naslov_filma, iznajmljeni.datum_iznajmljivanja FROM iznajmljeni INNER JOIN film ON iznajmljeni.film = film.broj_filma WHERE iznajmljeni.datum_vracanja IS NULL", conn);
ds = new DataSet();
daClanovi.Fill(ds, "clanovi");
daClanFilm.Fill(ds, "iznajmljeni_filmovi");
dgvClanovi.DataSource = ds;
dgvClanovi.DataMember = "clanovi";
ClanFilmRel = ds.Relations.Add("ClanFilm", ds.Tables["clanovi"].Columns["clanski_broj"], ds.Tables["iznajmljeni_filmovi"].Columns["clan"]);
dgvIznFilm.DataSource = ds;
dgvIznFilm.DataMember = "clanovi.ClanFilm";
}
Kada snimam podatke u bazu nekad koristim funkciju Update() DataAdaper-a, a neka pomocu Command, koriscenjem upita.
U formi za evidenciju filmova nalazi se slican kod, ali sa posebnim DataSet-om. Da li je to OK
[ DELT@ @ 08.08.2007. 16:42 ] @
Mozes sa jednim, dva ili vishe datasetova... Nije problem, mada ja sam ga imao (problem) dok nisam sve lepo prepovezao. Prepravljao sam program sa jednog na dva, pa sam opet vratio na jedan, jer mi je bilo lakse da uradim vishe querija za swaki table adapter ... Mislim, designer ce ti uraditi 90% posla, mada ja sam koristio MSSQLEE, a ne MySQL, tako da ne znam kako ide kod njega kroz C#, imam ga negde, ali nisam ga probao... Program je slican twom, u pitanju je program za vodjenje evidencije u biblioteci ...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.