Oprettet fre. d. 06. april 2007 kl. 13:19:30

sholm
sholm (16.155 point. Point ude: 0)

Problemer med en basepage.

Hej
Jeg har lavet en BasePage til at håndtere bl.a. min database-connection. Men den gir' mig lidt problemer.

I min BasePage.cs vil jeg gerne have lavet en MySqlCommand f.eks. objComm. Ideen er så at i Page_Load åbnes der en ny database connection i og i Page_Unload lukkes den igen.

Mit problem er så at selvom jeg laver en objComm = new MySqlCommand(); og objComm.Connection = objDb.Connect(); i Page_Load så får jeg en fejl på de sider hvor jeg arver fra min BasePage at objComm er null.

BasePage.cs:

public class BasePage : System.Web.UI.Page
{
    public MySqlCommand objComm;
    public MYSQL objDb;

    public BasePage()
    {
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        objDb = new MYSQL(System.Configuration.ConfigurationManager.AppSettings.Get("DBConnString"));
        objComm = new MySqlCommand();
        objComm.Connection = objDb.Connect();
    }

    protected void Page_Unload(object sender, EventArgs e)
    {
        try
        {
            if(objComm.Connection != null)
            {
                if(objComm.Connection.State != ConnectionState.Closed)
                {
                    objComm.Connection.Close();
                }
            }
        }
        catch(Exception exc)
        {

        }
    }
}

default.aspx.cs:
public partial class _Default : BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MySql.Data.MySqlClient.MySqlDataReader objDr;
        objComm.CommandText = "SELECT * FROM test";
        objDr = objComm.ExecuteReader();
        if (objDr.Read())
        {
            cbphContent.Controls.Add(new LiteralControl(objDr["text"].ToString()));
        }

        InitControls();
    }
}

Nogen ideer? :)

Skrevet fre. d. 06. april 2007 kl. 14:58:41| #1

snepnet
snepnet (87.110 point)
Ja - Du får slet ikke kørt Page_Load i basen med den kode du har vist... Hvis du vil have den kørt kan du gøre sådan her i basen:

protected override void OnLoad(EventArgs e)
{
  // din kode her.
  base.OnLoad(e);
}

Men jeg vil som udgangspunkt slet ikke anbefale dig en model som den du har vist.
Åben forbindelsen til din database så sent som muligt, og luk den så tidligt som muligt.

Mvh

Skrevet tir. d. 22. maj 2007 kl. 13:43:51| #2

sholm
sholm (16.155 point)
Smid lige et svar så vi kan lukke den, evt. med et link til en løsningsmodel du vil anbefale :)

Skrevet søn. d. 01. juli 2007 kl. 09:04:42| #3

snepnet
snepnet (87.110 point)
Undskyld - jeg har ikke set at du har skrevet.
Du får et svar her, og mht. til modellen, så vil jeg bare anbefale at de metoder der henter data til dig - også afstedkommer at forbindelsen både åbnes og lukkes.
Mvh

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

GridView og RowCommand

Oprettet den 22. maj 2012 kl. 17.34
faran giver 30 point for svar | Giv et svar »

Flere betingelser i repeater.

Oprettet den 15. maj 2012 kl. 21.45
fuldstop giver 60 point for svar | Giv et svar »

kombinere code behind og Javascript

Oprettet den 6. maj 2012 kl. 09.02
tjacob giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger