webForumDet fria alternativet

returnera datareader

7 svar · 288 visningar · startad av Mc Fetto

Mc FettoMedlem sedan nov. 20022 355 inlägg
#1

Jag har en basklass som har hand om kommunikationen till databasen, sedan har jag olika klasser som använder denna. Till exempel en klass som har metoden getMails(int val), resultatet från denna metod ska bindas till en datalist. Men om jag förstått det rätt så vill man ju inte retunera en datareader för då måste hanteringen till databasen vara öppen... Vad finns det för allternativ? Skapa en matris för att få ut mailtitel, datum etc verkar bökigt! Tacksam för svar! :)

PaceMedlem sedan juni 20019 024 inlägg
#2

DataSet eller motsvarande typade objekt.

Annars är det inget fel i att returnera en datareader anser jag.

Mc FettoMedlem sedan nov. 20022 355 inlägg
#3

Hm, men det kan alldrig vara bra att ha en öppen kommunikation med databasen!?
Jag skulle precis skriva att jag använder en (ett) DataSet...
Nu är det så att jag skulle vilja att en av kolumnerna i DataSet:et inte ska synas i min DataList, utan jag vill anända titeln för att länka till olika sidor (med url från DataSet:et). Där då Url:en inte ska synas! Som en kolumn!

Om någon fattar vad jag har pladdrat om ovan så får ni gärna hillpa! :bire

PaceMedlem sedan juni 20019 024 inlägg
#4

Mc Fetto skrev:

Hm, men det kan alldrig vara bra att ha en öppen kommunikation med databasen!?

Du får gärna föreslå en alternativ metod där du lyckas hämta data ur en stängd databas. :e ;)

Skämt åsido, om du inte vill att några kolumner ska synas i din DataList så är det DataListen du ska titta på, och konfigurera - inte dataanropet.

GladhMedlem sedan maj 20012 812 inlägg
#5

Jag använder DataTables för att returnerar data från mitt DAL till min O/R Mapper. Det verkar vara det "lättaste" objekt att använda då man inte vill använda sig av en dataReader.

Skall du bara binda din data dirket till en ASP.NET control så fungerar det utmärkt att returnera en dataReader från ditt DAL, det viktiga är att din connection stängs så fort där är färdig med din data.

- M

Mc FettoMedlem sedan nov. 20022 355 inlägg
#6

Pace skrev:

Mc Fetto skrev:

Hm, men det kan alldrig vara bra att ha en öppen kommunikation med databasen!?

Du får gärna föreslå en alternativ metod där du lyckas hämta data ur en stängd databas. :e ;)

Skämt åsido, om du inte vill att några kolumner ska synas i din DataList så är det DataListen du ska titta på, och konfigurera - inte dataanropet.

Nej det kan jag verkligen inte visa dig, men jag har fått för mig att skicka Reader:s hit och dit inte är bra..
Jo, jag förstår att jag ska pilla mot DataListen och inte mot anropet, eller DataSet:et.
Nog bättre att skapa en ny tråd om jag inte lyckas.. på gernsyn! och tack!

NöffMedlem sedan nov. 2003569 inlägg
#7

men jag har fått för mig att skicka Reader:s hit och dit inte är bra..

Du har helt rätt i det ställningstagandet. För att det kan bli problem om du använder en DataReader och samtidigt skulle ha lust att göra lite databaskopplingar i DataList:ens ItemDataBound. Och om du vill göra lite shyssta nästlade databasfrågor funkar heller inte en DataReader så bra. Ett DataTable är helt frånkopplat från databasen. Och att använda ett DataSet för en tabell i databasen är också lite overkill. Använd ett DataTable (rekommenderar)

GladhMedlem sedan maj 20012 812 inlägg
#8

Nej det kan jag verkligen inte visa dig, men jag har fått för mig att skicka Reader:s hit och dit inte är bra..

Det beror på vad du skall gör med din datareader. Så länge din datareader är öppen så har du en connection till din databas öppen. Så om du skall bearbeta datan från din datareader undertiden som du binder till en kontrol (typ i ItemDataBound som Nöff sa) så betyder det att du bearbetar data medans din connection är öppen och detta är slöseri med resurser.

Men skall du bara binda data till typ en DropDownList och använder dig av DataField och DataValue för att sätta värden i din DropDownList så är det ingen fara att returnera ett datareader object från ditt DAL och binda i din codebehind, det är INTE SNYGGT, men absolut inte farligt.

Komihåg att det tar minst lika långtid att fylla ett DataTable/DataSet som det tar att skicka ett DataReader object från ditt DAL och fylla en DropDownLista med. (Givetvis beroende på hur du designat ditt system).

Återigen så verkar en O/R Mapper vara lösningen på problemet :)

- magnus

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)