By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,929 Members | 634 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,929 IT Pros & Developers. It's quick & easy.

Session state lost after accessing database

P: n/a
Hi

I have an ASP.NET application that connects to an Access database.
Everything works fine except for the Session object. Data in the session
object is lost after I've made a call to the database.

To test, I've created two test aspx pages. Test1.aspx contains two buttons.
The first button sets values in the session object and then navigates to
Test2.aspx. Test2.aspx only displays the values in the session object.
The second button creates a connection to the database, executes a SQL
statement and then does exactly the same as the first button. (Code is
copied from first button). In Test2.aspx, the values set is seen as Nothing.

For the connection to the database, I tried:
- Created a custom data class that creates the connection and provides
access to the
database. Connection is a OledbConnection connecting via OLEDB JET.
- Used the same class but changed the connection to OdbcConnection.
- Created the connection directly from the aspx page.

The SQL statement executes with no problem, but as soon as the procedure /
function has finished executing, the session data is lost. I changed the
connection to test it on a SQL Server database. Works fine. However, the
server where the application is to be deployed does not have SQL Server and
we must use an Access database. I've done something similar in old ASP
before and it worked fine.

Any help, please.
Nov 18 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Hi William:

Are you doing a Response.Redirect after setting a session variable for
the first time?

Session["SomeValue"] = 42;
Response.Redirect("test2.aspx");

The first time you write to the session for a client ASP.NET creates a
cookie to send down to the browser. On following requests the browser
sends the cookie to the server and ASP.NET can find the user's
associated session. Unfortunately, Response.Redirect ends the request
early and the session cookie is lost.

One solution is to use:

Response.Redirect("test2.aspx", false);

The second parameter tells ASP.NET not to abort the request thread
early and the session survives.

HTH,

--
Scott
http://www.OdeToCode.com

On Sat, 28 Aug 2004 18:01:03 +0200, "William" <Vi***@online.nospam>
wrote:
Hi

I have an ASP.NET application that connects to an Access database.
Everything works fine except for the Session object. Data in the session
object is lost after I've made a call to the database.

To test, I've created two test aspx pages. Test1.aspx contains two buttons.
The first button sets values in the session object and then navigates to
Test2.aspx. Test2.aspx only displays the values in the session object.
The second button creates a connection to the database, executes a SQL
statement and then does exactly the same as the first button. (Code is
copied from first button). In Test2.aspx, the values set is seen as Nothing.

For the connection to the database, I tried:
- Created a custom data class that creates the connection and provides
access to the
database. Connection is a OledbConnection connecting via OLEDB JET.
- Used the same class but changed the connection to OdbcConnection.
- Created the connection directly from the aspx page.

The SQL statement executes with no problem, but as soon as the procedure /
function has finished executing, the session data is lost. I changed the
connection to test it on a SQL Server database. Works fine. However, the
server where the application is to be deployed does not have SQL Server and
we must use an Access database. I've done something similar in old ASP
before and it worked fine.

Any help, please.


Nov 18 '05 #2

P: n/a
Hi

Actually I've been using Server.Transfer and also tried just a normal
hyperlink. I can even have the two buttons on the same webform. One button
updates values in the session state and executes a SQL statement while the
other just displays the session values in a label control and the session
values will still be lost.

Regards

William

"Scott Allen" <bitmask@[nospam].fred.net> wrote in message
news:5s********************************@4ax.com...
Hi William:

Are you doing a Response.Redirect after setting a session variable for
the first time?

Session["SomeValue"] = 42;
Response.Redirect("test2.aspx");

The first time you write to the session for a client ASP.NET creates a
cookie to send down to the browser. On following requests the browser
sends the cookie to the server and ASP.NET can find the user's
associated session. Unfortunately, Response.Redirect ends the request
early and the session cookie is lost.

One solution is to use:

Response.Redirect("test2.aspx", false);

The second parameter tells ASP.NET not to abort the request thread
early and the session survives.

HTH,

--
Scott
http://www.OdeToCode.com

On Sat, 28 Aug 2004 18:01:03 +0200, "William" <Vi***@online.nospam>
wrote:
Hi

I have an ASP.NET application that connects to an Access database.
Everything works fine except for the Session object. Data in the session
object is lost after I've made a call to the database.

To test, I've created two test aspx pages. Test1.aspx contains two buttons.The first button sets values in the session object and then navigates to
Test2.aspx. Test2.aspx only displays the values in the session object.
The second button creates a connection to the database, executes a SQL
statement and then does exactly the same as the first button. (Code is
copied from first button). In Test2.aspx, the values set is seen as Nothing.
For the connection to the database, I tried:
- Created a custom data class that creates the connection and provides
access to the
database. Connection is a OledbConnection connecting via OLEDB JET.
- Used the same class but changed the connection to OdbcConnection.
- Created the connection directly from the aspx page.

The SQL statement executes with no problem, but as soon as the procedure /function has finished executing, the session data is lost. I changed the
connection to test it on a SQL Server database. Works fine. However, the
server where the application is to be deployed does not have SQL Server andwe must use an Access database. I've done something similar in old ASP
before and it worked fine.

Any help, please.

Nov 18 '05 #3

P: n/a
Hi William,

How did you set the session configration in web.config? Additionlly, if we
didn't redirect to Test2.aspx, just display the sessiob variant in same
page (Test1.aspx), like:

Response.Wrtie(var);

Will this work fine?

Luke

Nov 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.