Što bi rekao jedan moj poznanik sve to piše u MSDN-u ... ali ovde svi znaju da i to treba znati uraditi. Evo kako sam ja shvatio rad sa Access bazom i VS designer-om.
Dodaš jednu DataBaseConnection kontrolu iz Toolbox-a -> Data. (Ovde ti je najbitniji connection string [sve lepo iz dizajnera] -> uradi Test connection). Onda dodaš jedan DataAdapter (za sada samo jedan). (ovo ne pišem sa kompjutera na kome mi je instaliran studio tako da kucam iz glave - pa ti ipak konsultuj MSDN za detalje ako ti nešto ne ide).
Zatim iz donjeg dela designer-a (gde su ti iscrtane ikonice za DataConnection i DataAdapter klikneš desnim na DataAdapter (nazovi ga po nekoj tabeli iz baze** npr. daOsoba) i kažeš Configure data adapter. Otvara ti se wizard i stvarno nema ništa lakše: izabereš kreiranu konekciju; Add-uješ odgovarajuću tabelu i odgovarajuće kolone**; primećuješ da se u query delu ovog dijaloga generiše SELECT <Kolone> FROM <NazivTabele> -> upit**; kada si zadovoljan upitom koji će ti vraćati željene podatke u obliku kolona idi desnim u query deo dijaloga i lupi Run. Kada si završio sa ovim delom dobijaš izveštaj o generisanim komandama za INSERT, UPDATE, DELETE, ... gledaj da nemaš ni jedan uzvičnik kod ovih komandi.
Dalje opet ideš desnim mišem na daOsoba. Biraš Generate DataSet. Daš ime DataSet-u (dsSema)
Ovo je najbitniji deo onoga što se tiče prikaza podataka a to je da imaš podatke(kolone) grupisane u tabele(DataAdapter) grupisane u šemu(DataSet) iz koje se lako dobija genijalni objekat DataView radi prikaza podataka na koji god način voliš (u tvom slučaju DataGrid).
E dalje praviš za svaku tabelu tj. za svaku grupu podataka tj. za svaki SELECT koji ti je potreban, (ako si me pratio i pročitao fusnote razumećeš), pojedinačne DataAdapter-e. Kako koji konfigurišeš generiši DataSet (u VS 2003 automatski ti je nudio da se nadovežeš na već postojeći DataSet i to u tvom slučaju treba uraditi jer ne verujem da ti je potrebno više od jedne šeme). Dakle u jednom DataSet-u imaćeš više DataAdapter-a. Čini mi se da ova procedura generiše i *.XSX fajl iz koga se izcrtava šema za DataSet. Ovo ti je kompletna procedura za povezivanje aplikacije i MS ACCESS baze iz VS dizajnera.
Što se tiče koda evo nekih hintova:
DataView dvOsoba = new DataView(dsSema.OSOBA); //OSOBA je ime tabele kojoj DataSet pristupa ovo nije stvarna tabela već njen, nazovi, imidž
dvVeza.RowFilter = "ID_RADNOMESTO = " + <NekiIntegerKojiSlužuKaoFilter>.ToString();// izuzetno brzo izvršavajuća komanda, koja privremeno zadržava samo relevantne podatke (ID_RADNOMESTO je, recimo, kolona u tabeli OSOBA)
foreach (DataRowView drvOsoba in dvOsoba){
if ((int)drvOsoba.Row["ID_RADNOMESTO"] == 2)
string direktorIme = (string)drvOsoba.Row["IME"];
.......
}
Ali ono što je tebi najbitnije, a to je upis u bazu je sledeće:
dsSema.OSOBARow newRowOsoba = (dsSema.OSOBARow) dsSema.OSOBA.NewRow(); //kreira objekat tipa "red tabele koja ti je potrebna sa svojim defult vrednostima za kolone"
/*dodeljivanje vredenosti kolonama - obratiti pažnju na tipove promenljivih*/
newRowOsoba.IME = <TextBoxIme>.Text;
newRowOsoba.PREZIME = <TextBoxPrezime>.Text;
newRowOsoba.ID_RADNOMESTO = Convert.ToInt32(<TextBoxStraniKljuč>.Text);//naravno pazi na exception-e
...
dsSema.OSOBA.AddOSOBARow(newRowOsoba);//dodaješ novi red U !!!DataSet!!!
daOsoba.Update(dsSema.OSOBA);//Update-uješ stvarnu tabelu svojim podacima iz DataSet-a
zahvaljujem se kolegama na mogućim korekcijama. Ipak treba imati u vidu da je ovo sve iz glave.
**ako te stvarno interesuje zasto su ove dve zvezdice stavljene ovde, potraži u MSDN-u (VS 2005) članak o Data Tier-ima... Samo prvih nekoliko strana će ti objasniti koliko duboko rabbit hole goes
http://msdn2.microsoft.com/en-...lationaldatatobusinessentities