我可以在类库项目中创建数据库连接吗?

时间:2009-06-12 14:47:16

标签: c# .net asp.net visual-studio visual-studio-2008

我正在设置一个.net项目,该项目被调用以生成其他网页。基本上是一个真正的CODE BEHIND页面。当没有webconfig文件存在/可用时,如何在类库文件上建立连接?

5 个答案:

答案 0 :(得分:5)

在这种情况下,我将创建一个派生自System.Web.UI.Page的“基页”。在此页面上,您将创建一个名为“ConnectionString”的属性。您将从此页面继承您创建的所有网页。

示例:

public partial class BasePage : System.Web.UI.Page
{
    protected string ConnectionString
    {
        get
        {
            return System.Configuration.ConfigurationSettings.AppSettings["MyConnectionString"];
        }
    }

}

在你的web.config

<appSettings>
        <!-- Connection String -->
        <add key="ConnectionString" value="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"/>
</appSettings>

现在,您可以拥有一个带有易于阅读的连接字符串的web.config文件。你可以将这个“基页”存储在你的类库中,没问题。只要从中继承的网页使用带有连接字符串的web.config文件。

之后,使用该字符串进行连接是一件简单的事情。您可以通过各种方式执行此操作,无论是在您的网页中还是在单独的类中(我建议单独的类)。在这种情况下,如果您有一个单独的类,则需要将ConnectionString属性传递给连接函数:

public void ExecuteQuery(string connectionString, string sql)
        {
            using (System.Data.SqlClient.SqlConnection theConnection = new System.Data.SqlClient.SqlConnection(connectionString))
            using (System.Data.SqlClient.SqlCommand theCommand = new System.Data.SqlClient.SqlCommand(sql, theConnection))
            {
                theConnection.Open();
                theCommand.CommandType = CommandType.Text;
                theCommand.ExecuteNonQuery();
            }
        }

或者您可以创建一个不接受连接字符串参数的函数,只需从web.config文件中读取即可。听起来您可能希望将连接和数据访问代码放在类库中,以便良好地分离数据和内容。希望这有帮助!

答案 1 :(得分:1)

有几种方法可以解决这个问题:

1)如果您的类库实际上是要生成网页,那么它可能会使用web.config部署在服务器上,因此可以使用web.config文件的属性。如果您不想使用ConnectionString部分,那么您可以使用连接字符串进行appSetting。

这样做的好处是可以轻松更改或为不同的环境(测试,部署等)使用不同的连接字符串。如果您决定在另一种应用程序中使用类库,则可以使用具有相同设置的app.config文件。

根据数据库的类型,您将使用System.Data以及可能的一些子命名空间来实现此功能。

2)您可以将连接字符串硬编码到代码中。丑陋,但在紧要关头可行。

3)您可以使用实体框架来帮助您减少您必须完成的工作。

答案 2 :(得分:0)

System.Data命名空间。如果使用SQL Server,则为SQLConnection对象。

我使用应用程序数据块进行数据访问b / c我认为它节省了时间。该框架非常适合SQL Server访问。

答案 3 :(得分:0)

您的图书馆是否会从ASP.net网站调用?如果是这样,您仍然可以使用相同的方法来访问应用程序设置。否则,您可能需要某种app.config来处理您正在使用的前端。

答案 4 :(得分:0)

此外,在大多数类库中,您不需要在配置中进行连接,除非您使用需要使用它来获取某些信息的ORM。当您运行该事物时,将使用调用应用程序的配置,因此它将从web.config或其他任何内容中获取配置。