如何在Visual Studio 2015 / C#中使用本地SQL数据库引用子项目

本文关键字:SQL 数据库 子项目 引用 Visual Studio 2015 | 更新日期: 2023-09-27 18:36:01

我有一个c#项目("MainProject"),它在我的解决方案中引用了另一个c#项目("UserManager")。用户管理器有一个本地数据库(a "Service-based Database", .mdf)。

通过将此数据库添加到UserManager,Visual Studio 2015默认在UserManager的App.config中创建连接字符串条目。

<connectionStrings>
        <add name="UserManager.Properties.Settings.TPHWDatabaseConnectionString"
            connectionString="Data Source=(LocalDB)'MSSQLLocalDB;AttachDbFilename=|DataDirectory|'TPHWDatabase.mdf;Integrated Security=True"
            providerName="System.Data.SqlClient" />
</connectionStrings>

。以及"属性.设置"中的一个条目,该条目命名为 App.config 条目的名称字段,其中包含以下值:

Data Source=(LocalDB)'MSSQLLocalDB;AttachDbFilename=|DataDirectory|'TPHWDatabase.mdf;Integrated Security=True

在用户管理器项目的 C# 代码中,我使用以下行创建 SqlConnection 对象:

    // Establish conenction to database
    sqlConnection = new SqlConnection();
    sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["UserManager.Properties.Settings.TPHWDatabaseConnectionString"].ConnectionString;
    sqlConnection.Open();

这一切都可以很好地运行用户管理器项目本身。数据库文件(".mdf")也包含在 MainProject 的 bin 文件夹中。但是,当运行 MainProject 时,"ConfigurationManager.ConnectionStrings ["UserManager.Properties.Settings.TPHWDatabaseConnectionString"]" 将被null,我将收到调用 ".连接字符串"上。这似乎是合理的,因为我无法访问 MainProject 的"UserManager.Properties.Settings""App.config"

所以我的问题是:引用UserManager(在 MainProject 中)以保持数据库工作的干净方法是什么?

编辑

我现在只是将连接字符串原样复制到我的 MainProject 的 App.config 文件中,并将完全相同的设置设置为"属性.设置"。这似乎有效并且相当容易。但这仍然是最干净的方法吗?

如何在Visual Studio 2015 / C#中使用本地SQL数据库引用子项目

将引用数据库的连接字符串添加到 web.config,而不是附加数据库文件。 像这样的东西

<connectionStrings>
    <add connectionString="Server=.'sqlexpress;Initial Catalog=myDB;Integrated Security=True;" name="mydbconnection" />
 </connectionStrings>

并像下面这样阅读:

ConnectionStringSettings ConnectionString = ConfigurationManager.ConnectionStrings["mydbconnection"]