在单独的项目中使用DAL连接字符串的问题

时间:2009-08-04 13:33:35

标签: c# asp.net data-access-layer

我最初在我网站的App_Code文件夹中写了一个数据访问层。然后我们在一个单独的项目中开发了一个Web服务。因此,网站和Web服务都可以访问相同的DAL,我将其移动到另一个项目。我有一个带tableadapters的数据集,为了使DAL项目编译我必须将连接字符串添加到Application属性设置。但这意味着我必须为每个部署重新编译DAL。此外,我可能在服务器上使用相同的DAL有2或3个网站。所以我想在每个网站的web.config中设置连接字符串并保留它。 每次创建tableadapter的实例时,是否必须完成我的代码并进行更改? 例如来自

using (MessageQueue adaptor = new MessageQueue())
{
    return adaptor.GetMessages(UserId, MobileId, StartDate, EndDate);
}

using (MessageQueue adaptor = new MessageQueue())
using (OracleConnection connection = new OracleConnection(OracleUtilities.ConnectionString))
{
    adaptor.Connection = connection;
    return adaptor.GetMessages(UserId, MobileId, StartDate, EndDate);
}

或者有更好的方法吗?

科林

2 个答案:

答案 0 :(得分:3)

我找到了我在这里寻找的答案:

Guidance needed ASP.Net app connection string

在s_ruchit的回答中。

web.config中的连接字符串名称必须与app.config中的连接字符串名称匹配 - 该名称包含完全限定名称。所以在我的情况下,我改变了

<add name="ConnectionStringMainDB" 
     connectionString="<myConnStringHere>"
     providerName="System.Data.OracleClient"/>

为:

<add name="DatabaseAccess.Properties.Settings.ConnectionStringMainDB"
     connectionString="<myConnStringHere>" 
     providerName="System.Data.OracleClient"/>

无需更改其他代码!感谢Muhammed和更新的

答案 1 :(得分:1)

使用标准的ConnectionStrings配置部分,您将能够在不诉诸实用程序类的情况下检索连接字符串:

System.Configuration.ConfigurationManager.ConnectionStrings

您仍然需要将连接字符串放入需要数据库的每个应用程序的app.config或web.config文件中。

相关问题