ADO.NET kreiranje upita

poruka: 11
|
čitano: 3.636
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
ADO.NET kreiranje upita

Pozdrav svima...

Evo imam jedan problemčić, pa se nadam da ću uz vašu pomoć doći do rješenja...

Naime relativno sam nov u programiranju pa sam zapeo na jednom problemu....

Kreiram jednu aplikaciju u kojoj želim imati tetxtbox koji služi kao neka recimo tražilica i gumb kojim se traženje aktivira...

U SQL sam kreirao tablice, odredio PK i FK....

Želim omogućiti traženje, po imenu, autoru i godini iz baze....

Kako da kreiram SELECT upit u DataSetu???

 

Hvala puno

 
0 0 hvala 0
16 godina
neaktivan
offline
ADO.NET kreiranje upita

a da probaš pročitati neku knjigu o ado.net tehnologiji?

nemoj se ljutiti ali tvoje pitanje je praktički kao da si pitao da ti netko složi cijelu aplikaciju

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: ADO.NET kreiranje upita

...ako imaš više podataka iz više tablica tad u upitu napravi inner join tablice koje ti trebaju i where ti je parametar određenog txtBox-a ...i te podatke povežeš s izlaznom formom ,gridWiev ili što već imaš u planu.Najbolje je napraviti proceduru  za sve i to bi trebalo biti to ...to je samo ukratko .Znači s tim upitima puniš dataset i dalje radiš s tim datasetom iz tih upita.

 

EDIT: i ovo stoji što je kolega iznad rekao jer u biti  to je kompletan kod recimo jedne do dvije stranice aplikacije za pretragu....ako ne znaš ovo složiti što sam ukratko napisao ,trebao bi pročitati o ADO.NET -u bar nešto.Ili postaj što si već napravio pa da pripomognemo.

Private
Poruka je uređivana zadnji put sub 12.12.2009 15:19 (Private).
14 godina
neaktivan
offline
ADO.NET kreiranje upita

Ovak, kreirao sam dataset, te na pritisak buttona u gridview dobijem sve podatke iz tablice u bazi....ok to mi funkcionira....

Zanima me kako da ukomponiram textbox pretraživanje u koji ću upisat recimo naziv knjige, koja npr postoji u bazi i da mi aplikacija u gridview samo tu knjigu prikaže?!

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: ADO.NET kreiranje upita
sportiva kaže...

Ovak, kreirao sam dataset, te na pritisak buttona u gridview dobijem sve podatke iz tablice u bazi....ok to mi funkcionira....

Zanima me kako da ukomponiram textbox pretraživanje u koji ću upisat recimo naziv knjige, koja npr postoji u bazi i da mi aplikacija u gridview samo tu knjigu prikaže?!

pišem napamet...trebalo izgledati ovako nekako...trebaš sqlsourcu datagrida dati select

 

dim sql as string = "SELECT blabla bla bla FROM truć_truć WHERE nekinazivknjige LIKE = '" &  UkucajKnjigu.text.trim & "%'"

me.sqldatasourcenokoggrida.selectcommand = sql

me.sqldatasourceGrida1.databind()

m.Geid1.databind()

do something while necrknes
Poruka je uređivana zadnji put sub 12.12.2009 18:09 (baaab).
15 godina
neaktivan
offline
RE: ADO.NET kreiranje upita

SELECT * FROM [Naslovi] WHERE ([imeNaslova] = @ime)

 

to staviš u sqldatasource na formi kao izvor podataka ,parametar ti je naravno samo
ono što upišeš i kontrolu txt na formi ,znači naslov,na formi dovuci ili gridWiev ili details view i kao datasource naravno staviš taj sqldatasource  i to je to .
Sad ako želiš prikazati da ti se pokaže da nema naslova ,tad ima malo pisanja koda jer u button click event moraš orvoriti drugi connString koji će samo biti brojač pronađenih ili javiti da ih nema pod tim naslovom.Eto ,ako znaš raditi s sqlsource kontrolama neće ti biti teško .Još napraviš validaciju txt kontrole i malo try catch i eto ti djela aplikacije i pojedinačnog prikazivanja.

EDIT:   Evo što sam pod tim mislio ,u pet minuta napravljeno ali tako možeš napraviti (slike)...dolje ti je znači sqldatasource ,txtBox,button,detailsWiew kojem je advanced omogućeno editiranje i insert kao i paging.Sqlsource je povezan s upitom u txtKontroli naslovi i na temelju where uvjete traži naslov.Taj sqldatasource je opet izvor podataka za detailsWiew kontrolu kao datasource i to je to.....

 

 

Private
Poruka je uređivana zadnji put sub 12.12.2009 18:44 (Private).
14 godina
neaktivan
offline
ADO.NET kreiranje upita

ok riješio sam datasource na gridview, povezao sa textboxom....

e sad šta treba na akciju klika na btn napisat da se ispiše gridview?

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: ADO.NET kreiranje upita

Gledaj ,ako si povezao gridWiew preko sqldatasourca koji ima naravno u where uvjetu txtKontrolu ,tad klikom na button se kontrole popunjavaju pri postback event događaju jer ga button ima po defaultu autopostback ,prema tome sam klik ti treba popuniti greidwiew kontrolu.A sam button događaj možeš iskoristiti za brojanje naslova što ti opet može koristiti kao obavijest da li je koji naslov nađen ili ne.

Evo slike gdje vidiš to što sam i rekao i još sam dodao događaj za button kao i gridWiew kontrolu.
Sad reci gdje je problem .Ne zaboravi u web.config-u napraviti još svoj vlastiti connectionstring!

 

 

 

 

Private
Poruka je uređivana zadnji put sub 12.12.2009 20:19 (Private).
15 godina
offline
ADO.NET kreiranje upita

Kada već imaš dataset

 

 

Recimo da imaš gridviev

        <asp:GridView ID="GridNesto" runat="server"  AutoGenerateColumns="False"  >
            <Columns>              
                <asp:BoundField DataField="opis" HeaderText="opis" SortExpression="opis" />               
            </Columns>
        </asp:GridView>

U page load recimo onda ovo stavi

 

            string searchVino = Request.QueryString["s"];
            if (search != "") //search
            {
                DS.DsTvoj dsTvoj = new projekt.DS.DsTvoj();
                DS.DsTvojTableAdapters.tvojtaTableAdapter taTvoj = new projekt.DS.DsArtikliTableAdapters.tvojtaTableAdapter();
                taArtikli.FillSearch(dsArtikli.artikli, "%" + searchVino + "%");
                GridNesto.DataSource = dsTvoj.artikli;
                GridNesto.DataBind();
            }
            else  // sve iz baze ispisuje
            {
                DS.DsTvoj dsTvoj = new projekt.DS.DsTvoj();
                DS.DsTvojTableAdapters.tvojtaTableAdapter taTvoj = new projekt.DS.DsArtikliTableAdapters.tvojtaTableAdapter();
                taTvoj.Fill(dsTvoj.artikli);
                GridNesto.DataSource = dsTvoj.artikli;
                GridNesto.DataBind();
            }

//button moraš napraviti koji šalje qerystring

        protected void ButtonSearch_Click(object sender, EventArgs e)
        {
            Response.Redirect("tvoj.aspx?s=" + SerchBox.Text);
        }

 

 

Kada udjes u data set, trebaš napraviti tableadapter, njega napraviš tako da ga dregaš  s ljeve strane

Pod sql statmen napišeš ono što ti treba tipa

SELECT        nesto, t1,t2,t3
FROM            dbo.nesto

 

Ideš samo na next -ove i imat ćeš ovaj osnovni fill

 

Sada desnom tipkom dolje gdje ti piše recimo tvojTableAdapter pa na add

Tu sada napravi

 

SELECT        nesto, t1,t2,t3
FROM            dbo.artikli
WHERE        (nesto LIKE @opis)

 

Njega nazovi FillSearch

 

 

Vježbaj i izbjegavaj ovakav način rada, radije napravi svoju klasu. GridView i dataset te neće nikada usrečiti

Poruka je uređivana zadnji put pon 21.12.2009 11:21 (Gajotres).
 
1 0 hvala 0
14 godina
offline
RE: ADO.NET kreiranje upita
Private kaže...

Gledaj ,ako si povezao gridWiew preko sqldatasourca koji ima naravno u where uvjetu txtKontrolu ,tad klikom na button se kontrole popunjavaju pri postback event događaju jer ga button ima po defaultu autopostback ,prema tome sam klik ti treba popuniti greidwiew kontrolu.A sam button događaj možeš iskoristiti za brojanje naslova što ti opet može koristiti kao obavijest da li je koji naslov nađen ili ne.

Evo slike gdje vidiš to što sam i rekao i još sam dodao događaj za button kao i gridWiew kontrolu.
Sad reci gdje je problem .Ne zaboravi u web.config-u napraviti još svoj vlastiti connectionstring!

 

 

 

 

 

 Kako napraviti ovakav kod za naslove (if-else petlja u primjeru, za odabrani naslov kad ga ima ili nema u bazi) a koristim SqlDataAdapter umjesto SqlDataReadera.

A SqlDataAdapter nema svojstvo HasRows?

14 godina
offline
RE: ADO.NET kreiranje upita
 Ali za veliki kod nema niti potrebe kad GridView ima svojstvo EmptyDataText u kojega se upiše Navedenog naslova nema u bazi!
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice