Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Lagra ett dataset i en session

Postades av 2004-12-03 16:24:26 - Martin Berlin, i forum asp.net generellt, Tråden har 13 Kommentarer och lästs av 810 personer

Jag skulle vilja lagra mitt DataSet i en session. Får inte riktigt rätt på det, om det nu går.

Eller finns det andra alternativ som är bättre ?


Svara

Sv: Lagra ett dataset i en session

Postades av 2004-12-03 16:35:28 - Pelle Johansson

Ja det går egentligen att lagra alla typer av objekt. Men det du gör här är "aja-baja". Tänk dig att sessionen lever minst 20 minuter och om du har 100 användare med 100 sessioner som varje har 100k lagrat så tynger du ner servern rätt ordentligt.

Jag vet inte vad du är ute efter men lagra i stället id:t till det recordet du behöver komma åt och när du behöver information, hämta det via det id du håller reda på. Det är en mycket effektivare metod och gör inte att servern slöas ner så mycket heller. Ett databasanrop cachas också, så du tappar inte prestanda på det sättet.


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-03 16:52:09 - Andreas Håkansson

Njäe det är juh inte riktig sant det där. Det finns ett par faktorer som man måste väga in. Det hela handlar om man vill ha <b>Chunky</b> (sällan men mycket) eller <b>Chatty</b> (ofta men lite) kommunikation över nätverket till sin server.

Sen är det så att det är storleken på informationen som avgör, samt hur ofta den skall användas. Visst kan du mycket väl använda <b>Session</b> till att lagra information på användarnivå, men du kan även använda <b>Cache</b> funktionaliteten som finns i ASP.NET för att cacha - här kommer in fördelar så som att minneshanteraren i .NET kan plocka bort saker från cachen om den beöver frigöra resurser, man anger då vilken prioritet informationen i cachen skall ha vid borttagning. Sen kan man även använda <b>Application</b> objektet för att spara.

Över lag skulle jag rekommondera <b>Cache</b> stödet. Vidare så handlare det också om informationen skall lagras på användarnivå eller inte, samt hur ofta informationen kan komma att tänkas ändra. Ändras den ofta, så kan det vara intressant att köra frågan (gärna då via en Stored Procedure för bästa prestanda) varje gång informationen behöver användas så man är säker på att man arbatar med aktuell data - annars skulle jag cache:a upp den.

I samtliga alternativ (Application, Session och Cache) kan du lagra precis vilken objekt som helst på nästan samma sätt i alla tre fallen. Titta i dokumentationen för hur du stoppar in information, samt hur du läser ut <b>OCH</b> typer informationen till rätt typ när du hämtar den.


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-03 16:57:26 - Martin Berlin

Jag har en listbunden kontroll på en sida, i detta fall en datagrid. När jag klickar på någon post i denna kommer jag till en annan sida som visar ytterligare info om denna post. Du menar att jag gör ett nytt databasanrop för just det id jag vill åt på nästa sida istället för att spara hela kontrollen i en session ?

Om jag har en datagrid med massa poster och vill visa dessa på en annan sida också så gör jag alltså ytterligare ett databasanrop ? Finns det inget annat sätt?




Svara

Sv: Lagra ett dataset i en session

Postades av 2004-12-03 18:20:10 - Johan Normén

Martin,

Du kan som Andreas säger lägga det i en cache. Lägg din kontrol i en cache och sätt ett dependecy på den. Sedan kan du hämta denna med nyckel när du vill. ex på din andra sida.

Mvh Johan


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-03 21:26:55 - Martin Berlin

Andreas, Johan

Tack för tipsen. Det var inga problem att lägga kontrollen i en session men jag ska nu läsa lite om hur man arbetar med cachen.


Svara

Sv: Lagra ett dataset i en session

Postades av 2004-12-06 12:11:23 - Ola Axelsson

En annan lösning på det hela är att använda dig av Paneler och ViewState

Du har din datagrid in en panel. T.ex.

<asp:panel id=pDefaultDatagrid runat=server>Min datagrid som listar information</asp:panel>

Sen så har du en dold panel

<asp:panel id=pProperties runat=server visible=false>
</asp:panel>

När du klickar på en egenskap in din datagrid tänder du pProperties och släcker pDefulatDatagrid. Nu kan du via .NETs viewstate kan komma åt datagridens data.


En lösning som i alla fall är värd att fundera på. Du kan tom lägga object i viewstate. T.ex.

ViewState["data"] = myObject;


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-06 13:11:56 - Andreas Håkansson

ViewState genererar onödigt mycket trafik mellan klient & server och bör inte användas om man inte måste.


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-06 13:36:49 - Johan Normén

Ola,

Förutom det Andreas sa så måste du ha stöd för serializering o kovertering för ditt objekt till kod för viewstaten.

Tänk så här när ni bygger, Data som ni MÅSTE ha för en postback läggs i viewstaten helst så lite som möjligt. Data för sessionen som är unik för användaren läggs i en session, helst ett objekt med attribut för att slippa massa nycklar. (föredrar dock att man hämtar datan när man behöver den och inte lagrar så mkt i minnet.) Ex ett UserID skulle räcka genom hela applikationen då detta ID oftast nyttjas för att spåra annan data som man hämtar när den skall hämtas.

I application lägger man sånt som måste delas med alla.
Cache för att regelsätta global information.

Mvh Johan


Svara

Sv: Lagra ett dataset i en session

Postades av 2004-12-06 15:27:03 - Ola Axelsson

Okej.

Men vad är bäst om du ska använda dig av samma object på nästa sida. Är det bättre att göra ett nytt databas uppslag eller är det inte bättre då att återanväda objectet från ViewState och på så sätt slippa databasanropet.

Jag trodde det var det bästa att göra på detta sätt....


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-06 15:27:26 - Andreas Håkansson

Session / Cache


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-06 17:11:32 - Johan Normén

"Men vad är bäst om du ska använda dig av samma object på nästa sida. Är det bättre att göra ett nytt databas uppslag eller är det inte bättre då att återanväda objectet från ViewState och på så sätt slippa databasanropet."

Om det är data som inte kommer att förändras som är statisk skulle jag lagt den i cachen. Alltså .Nets cache klasser inte session eller viewstaten.

Om data kan ändras och inte utgör så stor belastningsskada hade jag säkerligen hämtat upp den varje gång då det kräver mindre kod och jag når mitt målk snabbare. Att bygga kod i tanke på bästa prestandan kan ibland eller oftast kosta mer än vad prestandavinsten är. Det är alltså billigare att köpa en snabbare processor till servern än den utv tid man lägger på att hålla på med prestandabitar där de kanske inte ens behövs.

Mvh Johan


Svara

Sv: Lagra ett dataset i en session

Postades av 2004-12-06 22:09:08 - Martin Berlin

Johan, Andreas

Oj då, tråden lever kvar fortfarande.

Jag använder mig nu av Cache vilket jag tycker fungerar smidigt. Funderar bara på hur jag ska få ut informationen på bästa sätt. Loopar man igenom objekten som jag lagrat i mitt dataset i cachen och tar ut den info jag behöver för just det id jag klickade på i min datagrid ?

/ Martin


Svara

Sv:Lagra ett dataset i en session

Postades av 2004-12-06 22:50:18 - Andreas Håkansson

Martin,

Wrappa den aktuella tabellen i ditt dataset (lagra förresten inte ett helt datatset om du bara behöver en tabell) i en <b>DataView</b> och sätt ett <b>RowFilter</b> för att filtrerar fram den aktuella raden/raderna.

Lycka till! =)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
4 065
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies