in c # connessione globale da utilizzare in tutte le classi

Ho una stringa di connessione salvata in Properties.Settings.Default , ho bisogno di usare una connessione sql in tutte le classi senza doverla dichiarare ogni volta, quindi come dovrebbe essere dichiarata?

In realtà non è necessario utilizzare un singolo SqlConnection ovunque. Un approccio migliore sarebbe quello di creare una class per gestire l’accesso ai dati. In genere questo è il dovere del tuo Data Access Layer (DAL). DAL è un insieme di classi che gestiscono tutte le cose relative al database.

Una class molto semplice per questo scopo potrebbe essere qualcosa del genere:

 public class DatabaseManager { private static DatabaseManager _instance; private DatabaseManager() { } static DatabaseManager() { _instance = new DatabaseManager(); } public DatabaseManager Instance { get { return _instance; } } private string GetConnectionString() { return Properties.Settings.Default.MyConnectionString; } public SqlConnection CreateConnection() { return new SqlConnection(GetConnectionString()); } } 

È ansible estendere questa class per contenere altri metodi per eseguire le query.

Consiglio vivamente di utilizzare un ORM (Object-Relational Mapper) come Entity Framework .

Può essere fatto con l’aiuto della variabile STATIC in qualsiasi class

Ogni volta che istanziate un nuovo object passate al suo costruttore un riferimento a quella connessione.

Ho creato qualcosa di simile in un vecchio progetto come questo. Vale la pena notare che si dovrebbe sempre usare un nuovo SqlConnection per tutte le operazioni, a causa del pool di connessioni .

 public static class SqlConnectionUtil { public static string DefaultConnectionString { get; private set; } static SqlConnectionUtil() { SqlConnectionUril.DefaultConnectionString = Properties.Settings.Default.TheConnectionString; } public static SqlConnection Create() { return new SqlConnection(SqlConnectionUtil.DefaultConnectionString); } } 

Dovresti quindi usarlo in questo modo.

 using (var connection = SqlConnectionUtil.Create()) { using (var command = connection.CreateCommand()) { // do things. } } 

Puoi usare questo codice per ottenere la stringa di coonection

  var defaultConn= new SqlConnection(ConfigurationManager.AppSettings["defaultConn"].ToString());