PDA

Prikaži potpunu verziju : Visual C# u listbox iz access-a ?


Knindza95
16.12.2012, 14:58
Poz, pokusavam da iz access baze ubacim neku kolonu u listbox, po netu sam trazio nikako da naletim na nesto...
uglavnom se koristi System.Data.OleDb; ali nikakav konkretan kod koji funkcionise nemogu da najdem... Ako neko ima neki tutorial ili slicno bio bi mu zahvalan...

water wizard
16.12.2012, 15:25
propertys od listboxa, data source..

Knindza95
16.12.2012, 15:38
E da covek ne poveruje :) Ja trazim silne kodove :)

E sad mi treba neki upit (if) koji je od ID-ova selektovan u listboxu
Ili ime , u tabeli ima ID i Ime tako da provera treba za bilo koji od navedenih... Ovo tesko da moze da se ralizuje ovako :(....

voodoo_
19.12.2012, 21:41
Napravi tipizirani DataSet koji će da vuče podatke iz te Access baze. Pa napravi table adapter koji će da apstrahuje tabelu iz te baze. Pa napravi BindingSource koji će da bude sprega između tog table adaptera i tvoje ListBox kontrole. Pa ListBox kontroli setuj da datasource bude taj BindingSource. Napokon, ako tabela ima npr. kolone "CustomerName" i "CustomerID", ListBox-u stavi da DisplayMember bude CustomerName, a ValueMember CustomerID, i onda ispituješ koji je SelectedValue u ListBox-u kada te interesuje šta je izabrano.

Šou s ovim Microsoftovim apstrakcijama baza.

Knindza95
19.12.2012, 22:54
Pa sve to on vec sam napravi kada podesim da je listbox bindsource, i shvatio sam ispitivanje...
Ali sad imam novih problema... pre sam postavljao nesto ali nista nisam resio
Treba da podesim kada se iz jednog listbox-a izabere stavna u drugom se otvara ono sto je izabrano iz prvog (makar ime) a iz drugog u treci
Prva 2 sam resio tako sto timer proverava selected.index i na osnovu toga stavlja jedan od nekoliko listboxova kao visible=true; u svaki od njih je ubacea neka od vrednosti tabela, e sada ne mogu ovo i za treci zato sto bi drugi trebao da ima mogucnost izmene....

voodoo_
19.12.2012, 23:05
Ne treba ti timer, jedna od prednosti bindingsource-a je da automatski sinhronizuje izmene u kontrolama koje imaju isti bindingsource kao izvor. Dakle stavi isti bs na više kontrola, podesi odgovarajući valuemember i displaymember, i kako menjaš u jednoj, tako se menjaju i u ostali. Takođe postoji event "OnCurrentChange" na bindingsource-u, preko njega možeš da regulišeš vidljivost listbox-ova.

Knindza95
20.12.2012, 0:37
Prvo tajmer ne sluzi u tu svrhu, ja uopste ovo nisam realizovao preko bindingsource-a nego ovako:
private void timer1_Tick(object sender, EventArgs e)
{
if (listBox1.SelectedIndex == 0)
listBox2.Visible = true;
else
{
listBox2.SelectedIndex = -1;
listBox2.Visible = false;
}
if (listBox1.SelectedIndex == 1)
listBox3.Visible = true;
else
{
listBox3.SelectedIndex = -1;
listBox3.Visible = false;
}
if (listBox1.SelectedIndex == 2)
listBox4.Visible = true;
else
{
listBox4.SelectedIndex = -1;
listBox4.Visible = false;
}
if (listBox1.SelectedIndex == 3)
listBox5.Visible = true;
else
{
listBox5.SelectedIndex = -1;
listBox5.Visible = false;
}
}

Tako da ovo nema veze sa bilo cim ovo je cista moja logika jer kao sto sam rekao Listbox1 sam rucno popunio....

Ne shvatam ovo tvoje "uputstvo" jedino sto ja na taj nacin podesim je to da u 2 listboxa kada kliknem na 1 stavku istu tu oznaci u drugom listboxu...
Jel imas neki tutorial youtube ili slicno stvarno ne shvatam...