Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. <connectionStrings>
  2. <add name="RHContext" providerName="System.Data.SqlClient"
  3. connectionString="Server=SERVER;Database=BASE;
  4. Trusted_Connection=false;Persist Security Info=True;User Id=USUARIO;
  5. Password=SENHA;MultipleActiveResultSets=True"
  6. </connectionStrings>
  7.  
  8. ConfigurationManager.ConnectionStrings["RHContext"].ConnectionString
  9.  
  10. public class AppConfigManager {
  11.  
  12. //Objeto para manipular o App.config
  13. private static Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  14.  
  15. #region Singleton
  16.  
  17. private static AppConfigManager instance;
  18.  
  19. public static AppConfigManager Configuration
  20. {
  21. get
  22. {
  23. if (instance == null)
  24. instance = new AppConfigManager();
  25. return instance;
  26. }
  27. }
  28.  
  29. private AppConfigManager()
  30. {
  31. this.ConnectionString = GetConnectionString("RHContext");
  32. }
  33. #endregion
  34.  
  35. /// <summary>
  36. /// Retorna a string do App.config.
  37. /// </summary>
  38. public string ConnectionString { get; private set; }
  39.  
  40.  
  41. /// <summary>
  42. /// O path do arquivo de configuração de conexão
  43. /// </summary>
  44. public string ConnectionConfigPath
  45. {
  46. get
  47. {
  48. return Application.ExecutablePath + ".config";
  49. }
  50. }
  51.  
  52.  
  53. /// <summary>
  54. /// A string de conexão
  55. /// </summary>
  56. /// <param name="key"></param>
  57. /// <returns></returns>
  58. public string GetConnectionString(string key)
  59. {
  60. try
  61. {
  62. return ConfigurationManager.ConnectionStrings[key].ConnectionString;
  63. }
  64. catch (Exception)
  65. {
  66.  
  67. throw new Exception("Não foi possivel obter a conexão do nome" + key);
  68. }
  69.  
  70. }
  71.  
  72. /// <summary>
  73. /// Altera a string de conexão do nome informado.
  74. /// </summary>
  75. /// <param name="connectionString">String a ser utilizada</param>
  76. public void ChangeConnectionString(string connectionString, string name)
  77. {
  78. //setando a string a ser alterada
  79. var cfg = config.ConnectionStrings.ConnectionStrings[name];
  80.  
  81. //altera a string de conexão
  82. cfg.ConnectionString = connectionString;
  83.  
  84. // Salva o que foi modificado
  85. config.Save(ConfigurationSaveMode.Modified);
  86.  
  87. // Atualiza no app o bloco connectionStrings
  88. ConfigurationManager.RefreshSection("connectionStrings");
  89.  
  90. // Recarrega os dados de conexão
  91. Properties.Settings.Default.Reload();
  92. }
  93.  
  94. /// <summary>
  95. /// Add uma string de conexão.
  96. /// MeuAppConfig é a classe onde será mapeados os atributos da connectionString
  97. /// </summary>
  98. public static void AddConnectionString(MeuAppConfig app)
  99. {
  100. try
  101. {
  102. if (string.IsNullOrWhiteSpace(app.User))
  103. app.User = "";
  104. if (string.IsNullOrWhiteSpace(app.Password))
  105. app.Password = "";
  106.  
  107. SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder
  108. {
  109. DataSource = app.ServerName,
  110. InitialCatalog = app.Database,
  111. UserID = app.User,
  112. Password = app.Password,
  113. IntegratedSecurity = "False"
  114. };
  115.  
  116. // add a conexão
  117. config.ConnectionStrings.ConnectionStrings.Add(
  118. new ConnectionStringSettings
  119. {
  120. Name = app.ConnectionName,
  121. ConnectionString = scsb.ConnectionString,
  122. ProviderName = "System.Data.SqlClient"
  123. });
  124.  
  125. // salva conexão
  126. config.Save(ConfigurationSaveMode.Modified);
  127. }
  128. catch (Exception ex)
  129. {
  130. //Entrada já existe ou outro ...
  131. }
  132. }
  133.  
  134. #endregion
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement