ASP.NET und Datenbank

05/05/2008 - 12:27 von Gerhard W. | Report spam
Hi,

ich arbeite gerade an einem ASP.NEt Projekt mit einer SQL-Server Anbindung.
Jetzt bin ich an dem Punkt angelangt, wo ich eine Editiermaske für die
Datensàtze erstellen muss. Es soll aber so sein, dass die zu bearbeitenden
Datensàtze nicht gleichzeitig von einem zweiten Benutzer geàndert werden
können/dürfen bzw. das er diese überhaupt nicht angezeigt bekommt.

Hat jemand so etwas schon einmal gemacht.

Einfach in einem Feld einen Wert reinschreiben ist mir zu unsicher. Was
passiert wenn der Benutzer das Fenster einfach schließt? Wie werden die
Datensàtze wieder zurückgesetzt?

Danke für Tips.

Gerhard
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
05/05/2008 - 13:02 | Warnen spam
Hallo Gerhard,

"Gerhard W." schrieb:

Es soll aber so sein, dass die zu bearbeitenden
Datensà¤tze nicht gleichzeitig von einem zweiten Benutzer geà¤ndert werden
können/dà¼rfen bzw. das er diese à¼berhaupt nicht angezeigt bekommt.

Hat jemand so etwas schon einmal gemacht.



Vor dem Problem dürften die meisten Webentwickler schon mal gestanden haben. Das
hat auch weniger mit ASP.NET, sondern eher mit den Eigenheiten einer webbasierten
als solches zu tun.

Einfach in einem Feld einen Wert reinschreiben ist mir zu unsicher.



Das wird aber wohl das sinnvollste sein. Da es keine dauerhafte Verbindung zu deiner
Webanwendung und somit auch keine zur Datenbank gibt, bleibt dir eigentlich nur die
Option, ein Flag zu setzen.

Was passiert wenn der Benutzer das Fenster einfach schlieàŸt? Wie werden die
Datensà¤tze wieder zurà¼ckgesetzt?



Das kannst Du bspw. im Session_End Event erledigen. Hier wàre dann aber anzuraten,
einen niedrigeren Wert als die standardmàßig gesetzten 20 Minuten für das Session
Timeout zu nehmen (Session.Timeout = n 'Anzahl Minuten), da der Datensatz ansonsten
für mind. 20 Minuten gesperrt bleibt.

Zusàtzlich könnte man evtl. alle xx Sekunden mittels JavaScript, bzw. AJAX einen
Request an den Server senden, der nichts anderes macht als zu übermitteln, ob der
Datensatz immer noch in der Bearbeitungsmaske steht. Falls dann lànger als yy
Sekunden lang kein KeepAlive Request gesendet wird, wird das Flag automatisch
wieder zurückgesetzt.

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