在运行时更改连接字符串

时间:2017-06-15 06:32:59

标签: c# sql wpf entity-framework ado.net

我使用实体框架工作创建了wpf应用程序(数据第一个approch) 现在连接字符串自动创建了app config

但我希望从放在C盘中的文本文件中获取连接字符串

3 个答案:

答案 0 :(得分:1)

替换上下文文件中的Method1()方法

 public Method1()
            : base("name=DB_Entities" )
        {

        //}

使用

         public Method1()

        {
            this.Database.Connection.ConnectionString = GlobalVariable.Conn;
        }

您可以将GlobalVariable.Conn替换为您的连接srting或创建Globalvaliable类文件并获取表单。

答案 1 :(得分:0)

您可以在运行时更改连接字符串,如下所示: Entity Framework change connection at runtime

但您需要修改上述链接的第一个答案中的代码:

 var configNameEf = string.IsNullOrEmpty(configConnectionStringName)
 ? source.GetType().Name 
 : configConnectionStringName;

        // add a reference to System.Configuration
        var entityCnxStringBuilder = new EntityConnectionStringBuilder
            (System.Configuration.ConfigurationManager
                .ConnectionStrings[configNameEf].ConnectionString);

为:

 var cString = File.ReadLines(@"c:\nameofyourfilewithconnectionstring.txt").FirstOrDefault();
if (cString !=null)
{
var entityCnxStringBuilder = new EntityConnectionStringBuilder(cString);
...
}

答案 2 :(得分:0)

对我来说(我试图更改数据实体框架模型数据库的数据库来源),最快的解决方案(但并非无风险)是

'''

        string s = File.ReadAllText("./CheckCenter.exe.config");
        s = Regex.Replace(s, "(?<=data source=)(.*)(?=;initial catalog=)", newIp+ ",1433");
        File.WriteAllText("./CheckCenter.exe.config", s);

'''

希望它能提供帮助^ _ ^