APS und Datenbankverbindung

Hallo,
vorerst mal das obligatorische ich bin in Anfänger in Sachen ASP…und generell mit dynamischen Webseiten hab ich nicht viel am Hut :smile:

Nun zu meiner Frage wenn ich eine asp(x) (falls das x wichtig ist?) erstelle und eine Verbindung zu einer Datenbank öffne kann ich die Verbindung dann bestehen lassen, wenn ich davon ausgehe das der Benutzer im nächsten SChritt andere DAten von der DB sehen möchte?
Oder muß ich jedes mal Datenbank Verbindung öffnen --> Daten selektieren --> DAtenbank Verbindung schliessen?

Vielen Dank für die Infos

Grüße
Peter

hallo peter,

du musst jedes mal db-verbindung öffnen, daten selektieren, db-verbindung schliessen.

vermeiden solltest du, für jeden nötigen selekt eine eigene verbindung aufzubauen.

viele grüße

rasta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

man muss nicht.

Beispielsweise ist es möglich, die Datenbankverbindung aufzubauen (z.B. auf einer Login-Seite) und das Verbindungsobjekt im Sessionobjekt zu speichern.
Danach kann man von in den weiteren Seiten einfach das Verbindungsobjekt aus „Session“ auslesen und verwenden. Ohne Authentifizierung kann mna auch eine Klasse anlegen (Singleton) und diese verwenden.

Beispiel zur Speicherung in Session:

  1. Neue Klasse (z.B. ODBC_Conn), übe die eine Verbindung zur DB aufgebaut wird (Benutzername und Passwort werden als Strings übergeben):


public ODBC_Conn(string User , string Password, out int RetCode)
{
// Die Funktion gibt 1 bei erfolgreichem Connect zu DB und
// -1 bei einem Fehler / falscher Authentifizierung wieder
RetCode = EstablishConnection(User,Password);
}

private int EstablishConnection(string strUID , string strPWD)
{
string strDriver = „{Adaptive Server Anywhere 9.0}“;
string strConnection = „DRIVER=“ + strDriver + „;“

  • „ENG=db_serv;“
  • „CommLinks=tcpip(ServerPort=45589);“
  • „UID=“ + strUID + „;“
  • „PWD=“ + strPWD + „;“;

m_Connection = new OdbcConnection(strConnection);
try
{
m_Connection.Open();
}
catch
{
return -1;
}

  1. Klasse in Login benutzen


ODBC_Conn ConnSession = new ODBC_Conn(txtBenutzername.Text , txtKennwort.Text, out intEstSuccess);

if (intEstSuccess >= 0) // Connect zur Datenbank war erfolgreich
{
Session[„SessionCon“] = ConnSession;

}

  1. Session-Objekt in Code-Behind der weiteren Seiten auslesen:

public class positionen : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label WasAuchImmer;
ODBC_Conn ConnPage;

}

private void Page_Load(object sender, System.EventArgs e)
{
ConnPage = (ODBC_Conn) Session[„SessionCon“];

}

Und „ConnPage“ verwenden:

string RowSQLString = „SELECT irgendwas FROM tabelle“;

OdbcCommand RowCommand = new OdbcCommand(RowSQLString,ConnPage.m_Connection);

OdbcDataReader RowReader = RowCommand.ExecuteReader();
RowCommand.Dispose();

Gruß

Hauke