c# - 如何使用变量传递 ConnectionString 参数?
问题描述
我有一个 ConnectionString,我想用 .txt 文件中的值传递它的值(数据源、数据库、用户 ID、密码),我需要读取它们,然后将它们传递给 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 Id="UserIdName";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
是它知道所有关于非平凡值、保留字符等的转义规则。
推荐阅读
- java - 我有一个 ArrayIndexOutOfBoundsException 错误
- powershell - Powershell Join-Path 在结果中显示 2 个目录而不是 1 - 意外脚本/函数输出
- intellij-idea - 如何在idevim中进行不区分大小写的搜索(使用/和?)
- c# - 来自 axios 的 Web Api 2 调用
- r - 提取列名并与另一列匹配
- protractor - How to make local connections to crossbrowsertesting.com with Protractor?
- python - val_loss 减半但 val_acc 保持不变
- html - 正确的 HTML 语法 - 列表标记内的粗体或粗体标记内的列表
- python - wxpython:GridBagSizer 让我很困惑
- python - 在 macOS 问题上安装 py3exiv2