企业库 配置文件
我用的是企业库3.1,数据库连接字符串在使用过程中是会发生变化的,但是ShakeCheck.exe.config这个配置文件我在程序中修改了,用记事本打开了,确定已被修改。但是在程序中读取连接字符串时却没有发生变化,真是郁闷!
配置文件如下:
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<dataConfiguration defaultDatabase="SQLite" />
<connectionStrings>
<add name="SQLite" connectionString="Data Source=D:\sh\ShakeCheck\bin\Debug\AlarmData.s3db"
providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
修改配置文件的代码如下:
//修改
if( System.Configuration.ConfigurationManager.ConnectionStrings[ "SQLite" ] != null )
{
System.IO.FileInfo info = new System.IO.FileInfo( filePath );
//打开
Configuration config = ConfigurationManager.OpenExeConfiguration( info.DirectoryName + "\\ShakeCheck.exe" );
//删除
config.ConnectionStrings.ConnectionStrings.Remove( "SQLite" );
//新建连接
ConnectionStringSettings conn = new ConnectionStringSettings( "SQLite", "Data Source=" + txt_DataBaseFilePath.Text, "System.Data.SQLite" );
config.ConnectionStrings.ConnectionStrings.Add( conn );
config.Save();
ConfigurationManager.RefreshSection( "connectionStrings" );
}
实例化企业库数据库访问块的代码:
public DataAccess( string databaseConfigurationName )
{
db = DatabaseFactory.CreateDatabase( databaseConfigurationName );
}