如何在asp.net中使用动态连接字符串?

时间:2019-05-31 08:18:41

标签: c# asp.net connection-string

所以,我正在编写一个程序,将excel文件导入数据库,查找匹配项,不匹配项,显示表格等。

在一开始,我只是手动添加了数据库连接字符串,但我必须使程序让连接字符串更改。

如果未插入任何内容,它将使用最后插入的内容。

代码背后:

protected void BtnFazerTudo_Click(object sender, EventArgs e)
    {
        var connectionString = ConfigurationManager.ConnectionStrings["Db"].ConnectionString;
        connectionString = connectionString.Replace("{username}", TxtUtilizador.Text);
        connectionString = connectionString.Replace("{pwd}",TxtPalavraPasse.Text);
        connectionString = connectionString.Replace("{DataSource}", TxtHost.Text);
        connectionString = connectionString.Replace("{Initial}", TxtBaseDeDados.Text);

        Debug.Write(con);
    }

Web配置:

<add name="Db" connectionString="Data Source ={DataSource} ;Initial Catalog= 
{Initial};Persist Security  
Info=True;User ID={username};Password={pwd}"/>

我已经尝试过String构建器。我能够在调试窗口中将其输出,但是我不知道如何将字符串生成器建立的连接转移到其他Web表单。

1 个答案:

答案 0 :(得分:0)

您正在创建的连接字符串必须存储在某个地方,以便Web应用程序的所有页面都可以访问它。尽管some choices that let you pass data among pages都不适合您,主要是因为(a)连接字符串包含安全敏感信息,例如密码!!! (b)它们没有提供您的方案所需的持久性级别(除非您希望用户每次连接到应用程序时都填充文本框)。

话虽如此,一种可行的选择是将连接字符串存储在数据库中,并在每次需要时检索它。您既可以将其存储为一个完整的字符串,也可以将每个用户数据分别存储(即目录,用户ID,密码等)。在后一种情况下,您每次需要时都必须重新创建连接字符串。

如何创建连接字符串与原始问题无关。它与C#中的字符串连接有关,您可以使用++=运算符,string interpolationString.FormatString.Concat,{{1} }或String.Join方法。