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

MrM*_*MrM 0 .net c# asp.net visual-studio-2008 visual-studio

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

the*_*erm 5

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

例:

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

}
Run Code Online (Sandbox Code Playgroud)

并在您的web.config中

<appSettings>
        <!-- Connection String -->
        <add key="ConnectionString" value="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

现在,您可以拥有一个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();
            }
        }
Run Code Online (Sandbox Code Playgroud)

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