Forum: ASP.NET2.0 |
Thema:
SQLDataReader in Session speichern |
Von:
Markus Peklo (
25.01.2007 16:23) |
Hallo,
ich hab mir folgendes überlegt.
Ich benötige den Inhalt eine SQL abfrage des öfteren auf meiner Seite.
Hab deshalb den SQLDataReader beim Login in die Session gespeichert.
Session[Constant.cstrOS] = cmd.ExecuteReader();
Jetzt hole ich mir auf der Seite, auf der ich die Daten benötige aus der Session den SQLDataReader wieder und lese die Daten aus:
SqlDataReader dr = ((SqlDataReader)Session[Constant.cstrOS]);
While (dr.Read())
?
Das klappt auch alles wunderbar, bekomme die ganzen Daten aus dem SQLDataReader, wie ich sie zuvor dort zwischengespeichert habe.
Will ich die Daten jetzt aber auf einer anderen Seite noch einmal auslesen bekomm geht das nicht mehr.
Ich bekomme den SqlDataReader zwar aus der Session,
dr.HasRows wird auch mit true zurückgegeben
aber dr.Read() gibt false zurück.
D.h. ich steh am letzten DS im SqlDataReader. Aber warum?
Dachte wenn ich aus der Ssession den SqlDataReader dr auslese ist dieser Temporär und wird in der Session nicht berührt. Was aber offensichtlich der Fall ist.
Wie kann ich das umgehen oder
kann ich dem SqlDataReader sagen er soll wieder auf Anfangsposition?
Das muss doch gehen sonnst wäre das ganze ja aufwendige Platzverschwendung.
Danke
Markus
Betreff |
Von |
Datum |
|
|
AW: SQLDataReader in Session speichern
Einen Reader in einer Session zu speichern ist eine ganz böse Idee. Du killst damit die ganz Applikation. Ein Reader hält die Datenbankverbindung offen bis du sie beendest. dH 20 User = 20... |
|
|
|
|
|
Bernhard
Grojer
|
25.01.2007 16:45 |
|
|
AW: AW: SQLDataReader in Session speichern
Habs mit DataTables gelöst, <br><br>die kann ich wieder in DataReader umwandeln und so oft benutzen wie ich will... <br><br>aber danke für dei Antwort!<br><br>Aber gigt es keine Möglichkeit in einem SQLDataReader... |
|
|
|
|
|
Markus
Peklo
|
25.01.2007 18:24 |
|
|
Bernhard
Grojer
|
25.01.2007 19:06 |
|
|
AW: AW: AW: AW: SQLDataReader in Session...
Hallo Bernhard <br><br>Ich wandel meine DataTable in einen Datareader um, weil sämtliche anschlussfunktionen einen Reader erwarten und die umzuschreiben dauert länger als wenn ich des schnell umwandel.... |
|
|
|
|
|
Markus
Peklo
|
29.01.2007 10:26 |
|
|
AW: AW: AW: SQLDataReader in Session speichern
Hallo, Markus,
der Datareader verwendet einen Vorwärts-Cursor, bei dem
leider (noch) kein Reset implementiert ist.
Alternativ kannst du folgenden Weg möglicherweise verwenden:
Da der SQL-Server... |
|
|
|
|
|
Guido
Nachtigall
|
26.01.2007 11:04 |
|
|
AW: AW: AW: AW: SQLDataReader in Session...
Hallo Guido,<br><br>hab des ja wie schon erwähnt mit einer DataTable gelöst. <br>dein Vorschlag wurde den sinn meiner Überlegung zu nichte machen.<br>ich will einen zugriff auf den Server haben und das... |
|
|
|
|
|
Markus
Peklo
|
29.01.2007 10:33 |
|
|
AW: AW: AW: AW: SQLDataReader in Session...
Hallo Guido,<br><br>hab des ja wie schon erwähnt mit einer DataTable gelöst. <br>dein Vorschlag wurde den sinn meiner Überlegung zu nichte machen.<br>ich will einen zugriff auf den Server haben und das... |
|
|
|
|
|
Markus
Peklo
|
29.01.2007 10:33 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!