You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7 WinForm项目如何在Program.cs中添加数据库连接字符串?

.NET 7 WinForm 直接在Program.cs中配置数据库连接字符串

这里提供三种实用方案,根据你的项目需求选择:

方法一:直接定义静态常量/字段

最简单的方式,直接在Program类中声明静态的连接字符串,整个项目可直接调用:

namespace YourWinFormApp;

public static class Program
{
    // 替换为你的实际数据库连接字符串
    public const string DbConnectionString = "Server=你的服务器地址;Database=你的数据库名;User Id=账号;Password=密码;";

    [STAThread]
    static void Main()
    {
        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }
}

在窗体或其他类中使用时,直接引用:

var connString = Program.DbConnectionString;

方法二:通过配置系统构建(推荐,便于后续扩展)

如果想沿用.NET的配置体系,方便后续添加其他配置项,可以手动构建内存配置:

namespace YourWinFormApp;

using Microsoft.Extensions.Configuration;

public static class Program
{
    public static IConfiguration? AppConfig { get; private set; }

    [STAThread]
    static void Main()
    {
        // 构建内存配置集合
        AppConfig = new ConfigurationBuilder()
            .AddInMemoryCollection(new Dictionary<string, string>
            {
                {"ConnectionStrings:DefaultConnection", "Server=你的服务器地址;Database=你的数据库名;User Id=账号;Password=密码;"}
            })
            .Build();

        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }
}

在窗体中获取连接字符串:

var connString = Program.AppConfig?.GetConnectionString("DefaultConnection");

方法三:结合依赖注入使用(适合复杂项目)

如果你的项目使用了依赖注入,可以将配置注册到服务容器,实现依赖注入式获取:

namespace YourWinFormApp;

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

public static class Program
{
    [STAThread]
    static void Main()
    {
        var services = new ServiceCollection();

        // 构建配置并注册到服务
        var config = new ConfigurationBuilder()
            .AddInMemoryCollection(new Dictionary<string, string>
            {
                {"ConnectionStrings:DefaultConnection", "Server=你的服务器地址;Database=你的数据库名;User Id=账号;Password=密码;"}
            })
            .Build();
        services.AddSingleton<IConfiguration>(config);

        // 注册窗体(支持构造函数注入)
        services.AddTransient<Form1>();

        var serviceProvider = services.BuildServiceProvider();

        ApplicationConfiguration.Initialize();
        // 从服务容器获取窗体实例
        Application.Run(serviceProvider.GetRequiredService<Form1>());
    }
}

在窗体中通过构造函数注入IConfiguration获取连接字符串:

public partial class Form1 : Form
{
    private readonly IConfiguration _configuration;

    public Form1(IConfiguration configuration)
    {
        InitializeComponent();
        _configuration = configuration;
        var connString = _configuration.GetConnectionString("DefaultConnection");
        // 后续使用连接字符串操作数据库
    }
}

内容的提问来源于stack exchange,提问作者Caner Kale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:25:19