Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 40 odgovora
  • 13.698 pregleda

Najnovija ↓

Pretrazivanje Access baze u C#. 17.05.2004. u 22:49 · pre 273 meseca #1
Imam jedan problem vezan za access bazu i C#. Napravio sam program koji poseduje jedan data grid u kome se nalazi baza podataka.Baza podataka sadrzi informacije o diskovima, kao sto je redni broj, naslov diska, njegova kategorija, i naravno kome je disk i da li je uopste pozajmljen. Dodao sam na formu i jedan textBox. E, sad stvar je sledeca. Ocu da kad upisem u taj textBox, npr. slovo a da mi on u data gridu izbacuje odnosno ostavlja samo diskove ciji naslov pocinje sa "a:.U SQL- u to ide ovako:

Code:

private void textBox1_TextChanged(object sender, System.EventArgs e)
    
            {
          oleDbDataAdapter1.SelectCommand.CommandText="SELECT*FROM   CD WHERE naslov LIKE '"+textBox1.Text+"*'";
          MessageBox.Show("SELECT cd.* FROM cd WHERE (cd.Naslov LIKE '"+textBox1.Text+"*')");
          dataSet11.Clear();
          oleDbDataAdapter1.Fill( dataSet11);
                
    } 

Ako neko zna molim za pomoc.Hvala unapred.
Re: Pretrazivanje Access baze u C#. 17.05.2004. u 23:37 · pre 273 meseca #2
Podatke koje si iscitao iz baze u DataSet sad treba da smestis u DataGrid.

A to ces ovako:

Code:

this.dataGrid1.DataSource=dataSet11.Tables[0];


Podrazumevam da te interesuje ova jedna tabela sto si je smestio u data set sa kodom tvojim.

Dakle dataSet11 moze da bude kolekcija tabela... a prvu i jedinu koju si iscitao iz baze pozivas preko indexa... indexi idu od nule pa ti je ovo dataSet11.Tables[0] bas ta tabela.

Ovo dataGrid1 je tvoj DataGrid pa tu stavi i njegovo ime ako se drukcije zove.

Pozdrav.
Potpis
http://gitarologija.com
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 00:31 · pre 273 meseca #3
Izgleda da se nismo razumeli. Ja sam vec napravio data grid i filovo ga, ali hocu da kad ukucam u textBoxu neki karakter, npr "a" da mi on update-uje dataGrid i ispise sve u ovom slucaju diskove koji pocinju sa slovom koje sam ukucao u textBoxu, u ovom slucaju "a".
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 09:58 · pre 273 meseca #5
Citat:
jejen83:
Code:

    oleDbDataAdapter1.SelectCommand.CommandText="SELECT*FROM   CD WHERE naslov LIKE '"+textBox1.Text+"*'";


Džoker u SQL-u nije zvezdica već procenat.
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 10:10 · pre 273 meseca #6
Citat:
jablan:
Džoker u SQL-u nije zvezdica već procenat.


Zvezdica je za Access. Ako si sad pomislio "daj, nema šanse", znaj da sam i ja to pomislio :) MS, go figure
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 14:05 · pre 273 meseca #7
Hvala vam puno, nisam jos probao ovo sto mi je jablan odgovorio, ali probacu, a iskreno, da je dzoker u SQL-u procenat nisam znao, hvala.Ako se negde zaglavim, eto mene ponovo, naravno ako budete voljni pomoci. Pozdrav.
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 14:40 · pre 273 meseca #8
Uf, momci probao sam ovo sto mi je jablan napisao i nece.Poludecu. evo sta sam uradio.

Code:

private void textBox3_TextChanged(object sender, System.EventArgs e)
        {
            oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE Naslov diska LIKE '"+textBox1.Text+"*'";
        }


Eto, i kad kompajliram sve prodje ok, ali kad pokrenem i ukucam nesto u textBox3 nista se nedesava, bazsa ostaje kakva jeste, tj neodstranjuje podatke cije ime nepocinje sa karakterom koji je unet u texBox3. Ako je neko voljan da mi pomogne,poludecu. Samo mi jos to treba da zavrsim program.Hvala
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 16:10 · pre 273 meseca #9
Citat:
jejen83:
Uf, momci probao sam ovo sto mi je jablan napisao i nece.Poludecu. evo sta sam uradio.


Pazi ovako prijatelju, koncepcijski nisi dobro razumeo kako radi DataGrid. Onog trenutka kad uradiš DataBind nad gridom, grid povuče podatke i od tad pa nadalje koristi svoj interni "offline" set podataka za iscrtavanje. To što si ti promenio komandu u DataAdapteru kojim si punio grid ne utiče nikako na pomenute "offline" podatke. Da bi "osvežio" te podatke, moraš ponovo da uradiš Bind-ovanje:

Code:

private void textBox1_TextChanged(object sender, System.EventArgs e)
{
    oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM
        CD WHERE naslov LIKE '"+textBox1.Text+"*'";
    dataSet11.Clear();
    oleDbDataAdapter1.Fill( dataSet11);
    // sledeću liniju ne ubacuješ ako ti je grid statički vezan za dataSet
    dataGrid1.DataSource=dataSet11;

    // ova linije ja ono što tebi fali
    dataGrid1.DataBind();
} 


I još nešto, ako je ovo asp.net aplikacija (mada pretpostavljam da nije), TextChanged event za textBox kontrolu se okida tek na prvi sledeći postback, te stoga neće reagovati na inkrementalno ukucavanje teksta kao što to radi WinForms ekvivalent.

E sad, postoji i šema sa DataView za koju ti je link dao Željko, to je dobra fora (učitaš jedanput sve pa filtriraš offline) ali i u tom slučaju moraš dataGrid da re-binduješ da bi dataGrid osvežio svoj set podataka.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 17:21 · pre 273 meseca #10
Probao sam da dodam ceo ovaj kod koji si mi dao, i kad sam pokrenuo program i upisao bilo sta u text box dobio sam poruku tipa:

....Syintax error (missing operator) in query expression 'Naslov diska LIKE CD Katalog by Bojan Mrdja' ???? Neznam kakve ovo ima veze, kad sam lepo u kodu naveo sledece:
Code:

private void textBox3_TextChanged(object sender, System.EventArgs e)
    {
            //oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE Naslov diska LIKE '"+textBox1.Text+"*'";
            oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE Naslov diska LIKE '"+textBox1.Text+"*'";
    dataSet11.Clear();
    oleDbDataAdapter1.Fill( dataSet11);
    // sledecu liniju ne ubacuješ ako ti je grid taticki vezan za dataSet
    //dataGrid1.DataSource=dataSet11;

    // ova linije ja ono što tebi fali
    //dataGrid1.DataBind();

             }


E, sad sam se stvarno zbunio.Nista mi nije jasno.
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 17:28 · pre 273 meseca #11
Polje čiji naziv sadrži space mora da ide pod kockaste zagrade, plus access oce da luduje oko nedostatka zagrada u logičkim uslovima, probaj ovu liniju umesto postojeće:

Code:

oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE ([Naslov diska] LIKE '"+textBox1.Text+"*')";


BTW, jel se meni čini ili si ti komentirao liniju sa DataBind?
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 18:34 · pre 273 meseca #12
Jedino sto se sad desava je nista, tj, kad ukucam bilo sta on mi izbrise celu bazi iz data grida i to je to.Neostavlja mi diskove koji pocinju sa karakterom koji sam ukucao u textBox. Porbao sam i da otkomentarisem liniju dataGrid1.dataBind() ali dobijam poruku tipa: 'System.Windows.Forms.DataGrid' does not contain a definition for 'DataBind'. Neznam vise sta da radim.Nemoj da se ljutis na mene, relativno sam skoro poceo da radim c#, pa sam jos pocetnik.Ako znas kako da uradis i hoces mogu ti poslati programce da probas. Pozdrav i veliko HVALA.
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 18:47 · pre 273 meseca #13
Nemoj da se izvinjavaš, moja krivica, predugo sam u asp.net vodama pa sam omanuo za naziv metode, umesto dataGrid1.DataBind linije stavi:

Code:

dataGrid1.SetDataBinding(dataSet11, "Diskovi");
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 21:44 · pre 273 meseca #14
E,probao sam ovo i opet nisam nista dobio.Opet mi obrise celu bazu, a nece da mi prikaze samo diskove koji poseduju taj karakter, i jos me sad da da samo jedan karakter unesem u texBox, pa onda moram ponovo da kliknem na textBox da bi mogao da dodam drugi.

kod sam napisao ovako:
Code:

private void textBox3_TextChanged(object sender, System.EventArgs e)
{
                //oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE Naslov diska LIKE '"+textBox1.Text+"*'";
                oleDbDataAdapter1.SelectCommand.CommandText="SELECT * FROM Diskovi WHERE ([Naslov diska] LIKE '"+textBox1.Text+"*')";
    dataSet11.Clear();
    oleDbDataAdapter1.Fill( dataSet11);
    // sledecu liniju ne ubacuješ ako ti je grid staticki vezan za dataSet
    //dataGrid1.DataSource=dataSet11;
            //ova linije ja ono što tebi fali
    dataGrid1.SetDataBinding(dataSet11, "Diskovi");
}


Uf, poludecu.I tako ti ja nema sanse da resim problem.Vise stvarno ne znam sta da radim.Niko pa cak ni moji profesori koji ovo predaju na mom faksu neznaju da urade, znaju kao sa sql-om, mada verujem da neznaju ni to, nego kao fora.Aj ako ti padne jos neko moguce resenje ti pomogaj.Hvala ti, pozdrav Bojan
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 22:30 · pre 273 meseca #15
Umesto * stavi % i rešena stvar (kako je jablan već napisao). Pozdrav.

[Ovu poruku je menjao degojs dana 18.05.2004. u 17:35 GMT]
Potpis
Commercial-Free !!!
Re: Pretrazivanje Access baze u C#. 18.05.2004. u 22:34 · pre 273 meseca #16
Citat:
jejen83:
E,probao sam ovo i opet nisam nista dobio.Opet mi obrise celu bazu, a nece da mi prikaze samo diskove koji poseduju taj karakter, i jos me sad da da samo jedan karakter unesem u texBox, pa onda moram ponovo da kliknem na textBox da bi mogao da dodam drugi.
}


Moras da stavis procenat umesto zvezdice u SQL upitu i radice. Probao sam. I obavezno otkomentarisi ovaj deo:

dataGrid1.DataSource=dataSet11;

Re: Pretrazivanje Access baze u C#. 19.05.2004. u 09:39 · pre 273 meseca #17
E,pa narode meni je baza u Accessu a ne u SQL - u sto bi stavljao procenat, koliko sam ukapirao to je za SQL, ili mozda gresim? U svakom slucaju sad cu da probam! Ne, nece da radi, opet mi program puca. uradio sam to sto ste rekli. Nista se nedesava, kako ukucam neko slovo u textBox, dsamo nestane cela baza i program pukne.Eto to je sve sto se desava.
Re: Pretrazivanje Access baze u C#. 19.05.2004. u 10:15 · pre 273 meseca #18
Ovo je vec tumaranje po mraku. Ajde lepo okaci samo .cs fajl od forme ovde pa da vidimo gde je previd.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Pretrazivanje Access baze u C#. 19.05.2004. u 13:58 · pre 273 meseca #19
Citat:
jejen83:
E,pa narode meni je baza u Accessu a ne u SQL - u sto bi stavljao procenat, koliko sam ukapirao to je za SQL, ili mozda gresim? U svakom slucaju sad cu da probam! Ne, nece da radi, opet mi program puca. uradio sam to sto ste rekli. Nista se nedesava, kako ukucam neko slovo u textBox, dsamo nestane cela baza i program pukne.Eto to je sve sto se desava.


Pa i Access koristi SQL za upite. A da bi nesto bilo SQL mora da ispostuje standard. A u SQL specifikaciji pise da tu treba da stoji procenat a ne zvezdica i Microsoft to mora da ispostuje. Mogu oni da dodaju svoje specificnosti ali osnovni standard mora da se ispostuje. Dobar primer je MS Visual C++. Da bi uopste bio C++ mora da ispostuje ANSI C++ specifikaciju, a MS je uz to dodao i gomilu svojih stvari ali to ne narusava standard. Dobro, znam da ima odstupanja u ovome sto sam napisao i da nije bas 100% tako ali u nacelu to je logika.
Re: Pretrazivanje Access baze u C#. 19.05.2004. u 15:34 · pre 273 meseca #20
Citat:
E,pa narode meni je baza u Accessu a ne u SQL - u sto bi stavljao procenat, koliko sam ukapirao to je za SQL, ili mozda gresim?

Grešiš u ovom slučaju..
Citat:
Ne, nece da radi, opet mi program puca. uradio sam to sto ste rekli.

Onda je neki drugi problem u pitanju pošto provereno radi sa %. Sad sam napravio i primer baš kakav tebi treba i radi bez problema. Sa % radi, a sa * ne.
Potpis
Commercial-Free !!!
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme