如何使用构建器(WebApplication.CreateBuilder)使我的connectionString可供我的DataAccess类使用

问题描述 投票:0回答:1

我在 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");
}

我需要做什么才能使该连接可用于我的方法?

asp.net-core connection-string c#-9.0
1个回答
0
投票

确保项目中安装了 Microsoft.Extensions.Configuration 和 Microsoft.Extensions.Configuration.Json 包。 在 C# 代码中,您可以使用 ConfigurationBuilder 类从 appsettings.json 文件读取连接字符串。这是一个例子:

var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(\"appsettings.json\")
.Build();

字符串连接字符串=配置.GetConnectionString(“MyConnectionString”);

© www.soinside.com 2019 - 2024. All rights reserved.