Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Dichiarazione di variabile globale valida per tutto il sito

    Salve,

    nel metodo Page_Load del mio codebehind ho questa variabile:

    codice:
    String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/campi.mdb");
    Vorrei portare questa variabile fuori dal Page_Load e trasformarla in variabile globale richiamabile da tutti i codebehind di tutto il sito (magari creando una classe in App_Code o altro).

    Per fare una prova ho provato a portarla fuori dal metodo, sempre nello stesso file, ma il "Server.MapPath" viene dato come errore.

    Come si può fare?

    Vi ringrazio anticipatamente,
    Marco

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    HttpContext.Current.Server.MapPath("~/App_Data/campi.mdb");

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    In visual basic:

    codice:
    Public Module globalValues
    
    
        Private _ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/campi.mdb")
    
    
        Public Property ConnString() As String
            Get
                Return _ConnString
            End Get
            Set(ByVal value As String)
                _ConnString = value
            End Set
        End Property
    
    
    End Module

    dal code-behind di una qualsiasi pagina:

    codice:
    Dim a As String = globalValues.ConnString

    PS: di solito la ConnectionString si scolpisce nel Web.Config come chiave.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    C#

    codice:
    public static class globalValues
    {
          private static string _ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/campi.mdb");       
          public static string ConnString
          {
                get { return _ConnString; }
                set { _ConnString = value; }
          }
    }

    Da una qualsiasi pagina:
    codice:
    protected void Page_Load(object sender, EventArgs e)
    {
       String a = globalValues.ConnString;
    }

  5. #5
    Grazie, sempre preciso e gentilissimo.

    A dire il vero, la variabili importanti da rendere globale sarebbero queste due:

    1)
    codice:
    if (FormView1.CurrentMode == FormViewMode.ReadOnly)
    {
    ...
    
    string a1 = (string)DataBinder.Eval(dataitem, rdr["campo"].ToString()).ToString();

    2)
    codice:
    protected void LVepisodes_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
    
    
    string b1 = (string)DataBinder.Eval(e.Item.DataItem, rdr["campo"].ToString()).ToString();

    Queste come le dovrei convertire?

    Ti ringrazio di nuovo,
    M.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    devi fare l'accesso al db nella classe globale, che prende quei valori dalla colonna che ti interessa ("campo").

    ma in questi casi, sarebbe meglio fare l'accesso dal punto dove hai bisogno del valore...
    il settaggio di variabili fatto in questo modo (almeno io) lo vedo piu' per le costanti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.