2010-11-23 7 views
8

J'ai un formulaire qui doit être connecté au serveur SQL et j'ai un menu déroulant pour sélectionner la liste des bases de données et effectuer des opérations comme la vérification des clés primaires, etc Mais actuellement mon chaîne de connexion ressemble à ceci:Pouvons-nous déclarer des variables dans le fichier app.config

SqlConnection sConnection = new SqlConnection("Server=192.168.10.3;DataBase=GoalPlanNew;User Id=gp;Password=gp"); 

Mais en dehors de la base de données étant donné que je besoin de je peux le prendre variable de sorte que la connexion à la base de données que je sélectionne dans le menu déroulant.

Pouvez-vous les gars s'il vous plaît aidez-moi!

Répondre

22

Hmm vous pouvez déclarer vos variables comme cette

<appSettings> 
    <add key="SmtpServerHost" value="********" /> 
    <add key="SmtpServerPort" value="25" /> 
    <add key="SmtpServerUserName" value="******" /> 
    <add key="SmtpServerPassword" value="*****" /> 
</appSettings> 

et lire comme

string smtpHost = ConfigurationManager.AppSettings["SmtpServerHost"]; 
int smtpPort = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpServerHost"]); 
+0

Quelle serait la valeur ici contiennent? – Srivastava

+0

valeur contient votre valeur :) Si vous écrivez valeur serverhost « asd.abc.com », votre chaîne de valeur smtpHost sera « asd.abl.com » –

+1

@SerkanHekimoglu Vous devriez probablement aussi indiquer l'espace de noms pour ConfigurationManager - System.Configuration. Et cette référence appropriée devrait être ajoutée à la solution aussi. –

1

Vous pouvez utiliser la balise connectionStrings dans la configuration app.config. Vous pouvez en ajouter autant que vous le souhaitez (en leur attribuant une clé séparée), puis les récupérer

exemple app.config xml (définissez providerName à un fournisseur valide, par exemple System.Data.SqlClient et la chaîne de connexion appropriée):

<?xml version='1.0' encoding='utf-8'?> 
    <configuration> 
    <connectionStrings> 
     <clear /> 
     <add name="firstDb" 
     providerName="System.Data.ProviderName" 
     connectionString="Valid Connection String;" /> 
     <add name="secondDb" 
     providerName="System.Data.ProviderName" 
     connectionString="Valid Connection String;" /> 
    </connectionStrings> 
    </configuration> 

exemple sur les obtenir et de les énumérer (dans votre cas, vous devez créer les éléments appropriés dans la liste déroulante et définir les valeurs):

ConnectionStringSettingsCollection settings = 
      ConfigurationManager.ConnectionStrings; 

     if (settings != null) 
     { 
      foreach(ConnectionStringSettings cs in settings) 
      { 
       Console.WriteLine(cs.Name); 
       Console.WriteLine(cs.ProviderName); 
       Console.WriteLine(cs.ConnectionString); 
      } 
     } 
0

Vous pouvez utiliser la section AppSettings. Lire here pour un exemple.

2

Je pense qu'il veut une "semi constante":

Web.Config

<?xml version='1.0' encoding='utf-8'?> 
<configuration> 
    <connectionStrings> 
     <add name="YourName" providerName="System.Data.ProviderName" connectionString="Data Source={0}; Initial Catalog=myDataBase; User Id=myUsername; Password=myPassword;" /> 
    </connectionStrings> 
</configuration> 

fichier CS

String Servername = "Test"; 
String ConnectionString = String.Format(ConfigurationManager.ConnectionStrings["YourName"].ConnectionString, ServerName); 
Questions connexes