Avatar billede sbhansen Nybegynder
28. april 2002 - 10:33 Der er 1 kommentar og
1 løsning

Kan man bruge SQL som yderligere filter på dataset? - hvordan???

Jeg vil gerne minimere antallet af udtræk fra min DB, og istedet genbruge et dataset, som ligger i global.asax, og generere forskellige datagrid/datalists m.m. i ASP.NET.

Lige nu prøver jeg mig lidt frem. Jeg har loadet en række tabeller ind i et dataset, dsUnit. Min problemstilling vedrører at jeg gerne vil lave et subset, fx kun alle forekomster i tblUnit, 'WHERE price<100 AND available = TRUE' , eller andre typiske SQL filtreringer. Målet er at opbevare diverse filtreringer i sessionsvariable, og dermed i pageload filtrere dsUnit, som jeg ønsker at vise i en datalist - dette mener jeg bør være væsentligt hurtigere end den almindelige datareader eller lignende udvælgelse af "records"

Jeg har selv et bud på en løsning, nemlig at betragte indholdet af en dataTable som er array, fx:

dim filterStr as String = "price<100 and available=TRUE"
dim selectedUnits() as Datarow = dsUnits.Tables("TblUnit").Select(filterStr)

for i=0 to selectedUnits.length-1
<TR attributvalg...>
<TD>
... et eller andet
next

MEN, jeg ville nu gerne kunne arbejde med ItemTemplate, datagrid og datalist og IKKE ovenstående, da jeg synes mit eget bud ligner almindelig ASP alt for meget.

Så - kan jeg påføre et dataset et filter, og bagefter bruge det filtrerede dataset som grundlag for en datalist?

/Søren
Avatar billede cbp Nybegynder
28. april 2002 - 10:57 #1
Du kan lave et view på dit dataset:

Dim vwMyView As DataView

vwMyView = dsMyDataset.Tables(0).DefaultView
vwMyView.RowFilter = "price < 100 and available = TRUE"

DataView'et kan efterfølgende bindes til eks. datagrids på samme måde som du binder DataSet's eller DataReader's.
Avatar billede sbhansen Nybegynder
28. april 2002 - 11:06 #2
Det var da som 7 Søren...! :-)
Ja, det var jo næsten lidt for nemt, men kanonstor hjælp for mig, nu sparker det r.. igen ;-)

tak for hjælpen.

der kommer nok snart et spørgsmål vedrørende filtrering udført på relaterede tabeller (parent/child osv) - men det kan du jo sikkert også svare på. Men nu giver jeg det lige et forsøg selv.

Jeg takker ærbødigst for det hurtige og præcise svar!

/Søren
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester