如何传递带有变量的ConnectionString参数?

c#

我有一个 ConnectionString,我想将值(数据源、数据库、用户 ID、密码)与 .txt 文件中的值一起传递,我需要读取它们,然后将它们传递给 connectionString,但我很困惑我该怎么做做这个。

在我的程序中,我有一个 Helper 类来返回 connectionString

public static class Helper
{
    public static string ConnectionString(string name)
    {
        return ConfigurationManager.ConnectionStrings[name].ConnectionString;
    }
}

这就是我调用 connectionString 的方式,以便我可以访问数据库数据

using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.ConnectionString("Hotel")))
{
     connection.Execute($"INSERT INTO dbo.Registos_Cancelados(Nome, Telemovel, Data) VALUES(@Nome, @Telemovel, @Data)", new { Nome = nome, Telemovel = telemovel, Data = data });
}

我有一个包含值的文本文件

"DataSourceName"
"DataBaseName"
"User IDName"
"PasswordName"

我希望它们在连接字符串中。

<connectionStrings>
    <add name="Hotel" connectionString="DataSource="DataSourceName";Database="DatabaseName";User;Password="PasswordName""
        providerName="System.Data.SqlClient" />
</connectionStrings>

回答

您正在使用 SqlClient,因此:您最好的选择是SqlConnectionStringBuilder

var cb = new SqlConnectionStringBuilder(theBaseString);
cb.DataSource = dataSourceName;
cb.InitialCatalog = dataBaseName;
cb.UserID = userId;
cb.Password = password;
var connectionString = cb.ConnectionString;

如果您没有模板字符串 ( theBaseString),请new SqlConnectionStringBuilder()改用。

SqlConnectionStringBuilder这里使用的好处是它知道所有关于非平凡值、保留字符等的转义规则。


以上是如何传递带有变量的ConnectionString参数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>