如何更改连接字符串初始目录

时间:2011-11-24 11:41:31

标签: c# asp.net database connection-string

我在网络配置文件中有一个连接字符串。 我在所有文件中都使用了这个连接名称。

连接字符串就像

<add name="connectionname" connectionString="Data Source=DEVELOPER1;Initial Catalog=dbname;Persist Security Info=True;User ID=sa;Password=some"/>

我想按照下拉列表更改登录页面中的初始目录(数据库名称),并且该更改将对应用程序保持相同。

2 个答案:

答案 0 :(得分:18)

要更改连接字符串而不修改它,您应该执行以下步骤:

  1. 创建SqlConnectionStringBuilder对象将原始连接字符串分配给它
  2. 在创建的SqlConnectionStringBuilder对象中更改所需的参数。
  3. 将SqlConnectionStringBuilder ConnectionString属性添加到DbConnection对象。
  4. 请参阅以下示例:(假设首先使用原始conexion字符串创建普通DbConnection(此处为名称db)):

    if (db != null)
    {
        SqlConnectionStringBuilder conn = new SqlConnectionStringBuilder(db.ConnectionString)
       { ConnectTimeout = 5, InitialCatalog = "your CatalogName" }; // you can add other parameters.
          db.ConnectionString = conn.ConnectionString;
          db.Open();
          return true;
       }
    }
    

    在给定的示例中,初始目录和超时已更改,但未触及原始字符串。

    我希望这对你有帮助。

答案 1 :(得分:1)

我认为你需要为每个数据库建立一个连接字符串。

您有一个下拉列表,用户选择要连接的数据库。这个值需要保留,可能在会话中。

您需要一个负责提供连接字符串值的类。该类传递下拉值/从会话中提取值,并将相应的连接字符串返回到DAL函数

编辑:如果您在所有页面中使用了连接字符串名称,则必须更改它。封装可能发生变化的内容。搜索和替换可能会这样做吗?