Ja bih UPRAVO preporučio LINQ koji može biti kompleksan onoliko koliko ti želiš.
Elem, pitanje je kako si navikao da barataš sa podacima? Da li preko BindingSource-a, BindingNavigator-a i DataSet-a?
U svakom slučaju - što se baratanja sa podacima tiče - u par linija s' obzirom da je kasno, pa možemo nastaviti sjutra. Recimo da imamo formu i negdje u vrhu deklarišemo i instanciramo objekat:
Code:
Private DB As New AdresarDBDataContext(My.Settings.AdresarConnString)
uz pretpostavku da se u My.Settings.AdresarConnString nalazi naš string konekcije. Sada na nivou forme možemo koristiti data-kontekst baze gdje želimo. Savjetujem ti da, dok testiraš LINQ - prije baratanja sa DB objektom, koristiš osobinu log-ovanja aktivnosti data konteksta u konzolni Output prozor. Ovo ćeš postići instrukcijom:
Code:
DB.Log = Console.Out
Tako ćeš jasno moći da vidiš koje SQL upite pokreće LINQ data kontekst pri baratanju sa podacima.
Elem... Treba da dodamo podatke u bazu? Radimo sa objektima:
Code:
DB.Grads.InsertOnSubmit(New Grad With {.NazivGrada = "Beograd"})
DB.Grads.InsertOnSubmit(New Grad With {.NazivGrada = "Novi Sad"})
DB.Grads.InsertOnSubmit(New Grad With {.NazivGrada = "Kragujevac"})
DB.SubmitChanges()
to je sve što se tiče dodavanja novih podataka u bazu. Može, naravno i staromodnije:
Code:
Dim objekat As New Grad
objekat.NazivGrada = "Beograd"
DB.Grads.InsertOnSubmit(objekat)
Može i drugačije, ali da ne komplikujem sad. Važno je shvatiti da DB.SubmitChanges() vrši sav hard-work: Insert, Update, Delete. Prije poziva ove procedure, možeš dobiti informacije o tome što čeka na dodavanje, izmjenu, brisanje upotrebom svojstva: DB.GetChangeSet (Inserts, Updates, Deletes).
Kod dobijanja podataka iz baze - najprostije (recimo da treba rezultat prikazati u grid-u pod imenom DataGridView1):
Code:
Me.DataGridView1.AutoGenerateColumns = True
Dim gradovi = From grad in DB.Grads Select grad
Me.DataGridView1.DataSource = gradovi
Preporučujem, ipak, vezivanje grid kontrole za BindingSource i potom punjenje BindingSource-a podacima iz LINQ upita. Pokušaću da napravim jedan kratak tutorijal koji pokazuje sve ovo, samo sa master/detail grid-ovima i 10 linija kod-a u vr' glave. No sad odoh da spavam ... :-)