Session Variablen geleert

19/10/2009 - 17:15 von Roger Näf | Report spam
Hallo zusammen

Nach dem Ausführen von folgendem Code (Zeile in Datenbank löschen) sind alle
Session Variablen geleert (NULL), Die Funktion selber wird korrekt
ausgeführt. Datensàtze anlegen und mutieren klappt ohne Nebenerschienungen.
Das Problem tritt lokal sowie auf zwei verschiedenen Servern im Internet
auf. Die Variablen sind unmittelbar danach auf Null.

Hat jemand eine Idee dazu?

Grüsse Roger


Codeschnippel von dem ich mir sicher bin, dass das Problem nur dann aber
immer dann auftritt, wen er durchlaufen wird:


protected void ButtonLoeschen_Click(object sender, EventArgs e)
{
Int32 IdToDo = Convert.ToInt32(Session["IdToDo"]);
OleDbConnection cnnToDo = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("~/App_Data/dbToDo.mdb"));

OleDbCommand cmdToDo = new OleDbCommand("SELECT * FROM ToDo WHERE
IdToDo = ?", cnnToDo);
cmdToDo.Parameters.Add("IdToDo", OleDbType.Integer).Value = IdToDo;

OleDbDataAdapter mydataAdapter = new OleDbDataAdapter(cmdToDo);
DataSet mydataSet = new DataSet();
mydataAdapter.Fill(mydataSet, "ToDo");

DataTable mydataTable = mydataSet.Tables["ToDo"];
if (mydataTable.Rows.Count == 1)
{
Directory.Delete(MapPath(".") + "..\\Projects\\" +
mydataTable.Rows[0]["IdToDo"], true);

OleDbCommandBuilder mycommandbuilder = new
OleDbCommandBuilder(mydataAdapter);
mydataTable.Rows[0].Delete();
mydataAdapter.Update(mydataSet, "ToDo");
}
cnnToDo.Close();
}
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
19/10/2009 - 19:52 | Warnen spam
Hallo Roger,

"Roger Nàf" schrieb:

Nach dem Ausführen von folgendem Code (Zeile in Datenbank löschen) sind alle Session Variablen geleert (NULL),



da die Funktion ja nichts mit der Session macht, muss da noch etwas fehlen.
Führst Du ggfs. ein Response.Redirect( ... ) aus? Falls ja, arbeitest Du
mit Sessioncookies und wie sieht der Aufruf von Response.Redirect( ... ) aus?

Datensàtze anlegen und mutieren klappt ohne Nebenerschienungen. Das Problem tritt lokal sowie auf zwei verschiedenen Servern im
Internet auf. Die Variablen sind unmittelbar danach auf Null.



Stellst Du das innerhalb der gerade aufgerufenen Seite fest oder erst beim
nàchsten Aufruf irgendeiner anderen Seite?

Was sagt der Debugger, wenn Du mal einen Breakpoint auf Session_End,
Application_Error, ... in der global.asax setzt?

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen