Dataset in Session state

  • Thread starter Thread starter Vik
  • Start date Start date
V

Vik

A dataset is saved in session state. Then the dataset is filled out with the
new records using a dataadapter. It appears then that the dataset saved in
session state contains the new records even without saving the updated
dataset.

Why does this happen? How can I preserve the dataset saved in session state
from automatical updating?

Thank you.
 
a code snip on how you are trying to use it would help. From my current
understanding here's what i think:

when you add objects to session they are added by value and not by
reference. ie one that you are refering to in you code is a local copy of
the object stored session.
any changes to the local copy would not be updated directly. you will need
to manually update the object in session.
 
Thank you Hermit. Here is my code.

SqlDataAdapter1 and DataSet11 are created in design time.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

Dim N0, N1, N2 As Int16, Str1, Str2 As String, DS As DataSet

Session("DS") = DataSet11

N0 = DataSet11.Tables(0).Rows.Count 'N0=0

SqlDataAdapter1.Fill(DataSet11)

DS = Session("DS")

N1 = DataSet11.Tables(0).Rows.Count 'N1=3

N2 = DS.Tables(0).Rows.Count 'N2=3

Str1 = DataSet11.Tables(0).Rows(1)(1) 'Str1="Other"

Str2 = DS.Tables(0).Rows(1)(1) 'Str2="Other"

End Sub

So, the dataset is saved in session state only once when it is empty. After
the dataset is filled out its saved copy has all the new records. What I
need and expected is that the dataset in session state keeps the old records
(remains empty in this case) when the real dataset is updated.

Vik
 
i see what you mean now.

try using

Session("DS") = DataSet11.Copy()

that way you are explicitly saving a copy. I will have a play around with
this later on.
 
Thank you. This works.

Vik

Hermit Dave said:
i see what you mean now.

try using

Session("DS") = DataSet11.Copy()

that way you are explicitly saving a copy. I will have a play around with
this later on.
 
Is it possible to release memory occupied by a Session object? E.g. will
this work: Session("DS") = Nothing ?

Vik
 
Back
Top