目前用subsonic写了个程序,连接字符串配置在app.config中,但是由于数据库服务器的IP可能会改变,每次改变后,都要在app.config中修改,然后重新编译。
有什么方法可以实现不编译程序,又能修改连接字符串呢?能不能不编译app.config?
或者subsnoic从外部文件读取连接字符串,而不是在app.config?

解决方案 »

  1.   

    把连接字符串写在外部txt文件里面,用的时候直接读取就是了
      

  2.   

    楼上的兄弟,请告诉我subsnoic怎么直接读取外部的字符串好吗?
      

  3.   

    不用修改app.config再重新编译直接修改"你的exe文件名.exe.config"即可
      

  4.   

    你可以把连接字符串放在一个配置文件中,这个配置文件采用XML格式,在程序里实用XMLDocument读取配置文件中的设置值就可以了,以后改Ip就把配置文件的连接字符串改一下就可以了public CommonDataAccess()
            {
                string configSection = "NWConfigFileName";
                string fileName = ConfigurationManager.AppSettings[configSection];            string applicationDirectory = AppDomain.CurrentDomain.BaseDirectory;
                string configFileName = Path.Combine(applicationDirectory, fileName);            ConfigurationUtility config = new ConfigurationUtility(configFileName);            string providerName = config.GetConfiguration("ProviderName");
                string connectionString = config.GetConfiguration("ConnectionString");            Console.WriteLine(providerName);
                Console.WriteLine(connectionString);            _DataAccess = new DataAccessUtility(providerName, connectionString);
            }
    <?xml version="1.0" encoding="utf-8" ?>
    <configurations>
      <config key="ProviderName" value="System.Data.OleDb" cryptography="false" />
      <config key="ConnectionString" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=G:\Northwind.mdb" cryptography="false" />
      <config key="databaseType" value="Access" cryptography="false" />
    </configurations>
    以上是我们学习时写的不知道是否对你有帮助