动态 SQL 连接 Class 来自配置

Dynamic SQL Connection Class From Config

怎么了。 是否有任何实现的代码用于在配置文件中逐部分保存连接字符串并在应用程序中使用它? 另外,在硬代码中加入一些默认值 ?

是的,我很久以前就实现了。 App.Config 或 Web.Config :

<userSettings>
    <ApartmentManagementSystem.Properties.Settings>
      <setting name="DataSource" serializeAs="String">
        <value>(local)</value>
      </setting>
      <setting name="InitialCatalog" serializeAs="String">
        <value>ApartmentManagementSystem</value>
      </setting>
      <setting name="IntegratedSecurity" serializeAs="String">
        <value>True</value>
      </setting>
      <setting name="ConnectTimeout" serializeAs="String">
        <value>5</value>
      </setting>
    </ApartmentManagementSystem.Properties.Settings>
  </userSettings>

连接Class(静态)

public static class ConnectionString
    {
        public static string DataSource { get; set; }
        public static string InitialCatalog { get; set; }
        public static Boolean IntegratedSecurity { get; set; }
        public static string ApplicationName { get; set; }
        public static int ConnectTimeout { get; set; }


        static ConnectionString()
        {
            DataSource = Settings.Default.DataSource ?? @"(local)";
            InitialCatalog = Settings.Default.InitialCatalog ?? @"ApartmentManagementSystem";
            IntegratedSecurity = Settings.Default.IntegratedSecurity;
            ApplicationName = Settings.Default.ApplicationName ?? System.IO.Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0]);
            ConnectTimeout = Settings.Default.ConnectTimeout;
        }
        /// <summary>
        /// fetch default sql connection from settings
        /// </summary>
        /// <returns>Connection String</returns>
        public static string GetConnectionString()
        {
            var _connection = new SqlConnectionStringBuilder()
            {
                DataSource = ConnectionString.DataSource,
                InitialCatalog = ConnectionString.InitialCatalog,
                IntegratedSecurity = ConnectionString.IntegratedSecurity,
                ApplicationName = ConnectionString.ApplicationName,
                ConnectTimeout = ConnectionString.ConnectTimeout
            };
            return _connection.ConnectionString;
        }
    }