我在 appsettings.json 文件中设置了连接字符串,我可以使用 Console.WriteLine 在 Main 中看到它,所以我知道我正在正确地将其获取到 program.cs。
var builder = WebApplication.CreateBuilder(args);
string? constring = builder.Configuration.GetConnectionString("P51InvConnection");
Console.WriteLine(constring);
我认为我需要做的下一件事是使用 Builder.Services 使其可供应用程序的其余部分使用。具体来说,是我的 DataAccess 类。到目前为止,我发现的每个示例都使用 EF Core,或者是仍在使用 StartUp.cs 时的示例,我可以弄清楚如何使用 Program.cs 并在没有 EF 的情况下使其工作。
这是我的 DataAccess 类中的方法,我试图在其中读取连接字符串。
public static async Task<DataTable> ExecuteDataTableAsync(string storedProcedure, params SqlParameter[] parameters)
{
DataTable? dt = default;
try
{
await Task.Run(() =>
{
Console.WriteLine();
using SqlConnection conn = new("Connection String Here");
conn.Open();
using SqlCommand cmd = new(storedProcedure, conn);
cmd.CommandTimeout = 3;
cmd.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
using SqlDataAdapter da = new(cmd);
dt = new DataTable();
da.Fill(dt);
});
}
catch (Exception ex)
{
LogError(ex);
}
return dt ?? throw new Exception("DataTable empty or null");
}
我需要做什么才能使该连接可用于我的方法?
确保项目中安装了 Microsoft.Extensions.Configuration 和 Microsoft.Extensions.Configuration.Json 包。 在 C# 代码中,您可以使用 ConfigurationBuilder 类从 appsettings.json 文件读取连接字符串。这是一个例子:
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(\"appsettings.json\")
.Build();
字符串连接字符串=配置.GetConnectionString(“MyConnectionString”);