来自其他项目中web.config的数据库连接

时间:2016-06-22 06:50:01

标签: c# asp.net

我很想获得在其他项目中处理连接字符串的正确/最佳方法:

我在VS解决方案中有两个项目:

  1. 项目1:网站(asp.net)

    • with web.config有一个数据库连接字符串
  2. 项目2:有一些课程

    • 包含数据层(在项目1或项目x中访问)
  3. 在项目2中设置连接字符串的正确方法是什么?

    Project 2有一个静态类,其功能如下:

    public static List<T> GetData();
    

    我是否应该始终将连接字符串作为变量传递,如:

    public static List<T> GetData(string connectionString);
    

    语法如ie。:

    var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionStringName"];
    var list = ClassX.GetData(connectionString);
    

    或者是否可以通过其他方式设置某个地方?

    或者我的完整设置错了吗? :)

4 个答案:

答案 0 :(得分:2)

我们通常将connection string放入网站(主要入口点),我们可以从class library(项目2)中读取它。

只需在您的类库中添加System.Configuration的引用,您就可以从项目1中阅读config,就好像您正在执行项目1中的代码一样直接

答案 1 :(得分:2)

在两个项目中定义连接字符串并不重要,只需添加您的默认项目项目1:网站(asp.net)的配置文件。 / p>

<connectionStrings>
    <add name="Context" connectionString="Server=ServerName; User ID=sa; Password=123; Database = DBName;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

有关http://www.connectionstrings.com/

的更多信息

答案 2 :(得分:1)

描述的一些好方法是:

将常见配置设置放在machine.config here

另请参阅此内容,其中显示了如何在同一解决方案中的多个项目之间共享相同的app.config文件(假设您可以在此处放置连接字符串)。

Sharing App.config between projects

答案 3 :(得分:1)

类库没有自己的配置。它们使用的是可用于执行它们的配置。

这意味着你应该能够使用相同的代码,它将从配置中读取设置(假设它在那里)。