.NET中使用三层构架如何从DAL层读取web.config中的数据库连接字符串!

    using System;  
    using System.Collections.Generic;  
    using System.Text;  
    using System.Web.Configuration;   // 要引用这个命名空间  
      
    namespace DAL  
   {  
       public class SQLHelper  
       {  
           /// <summary>  
          ///  测试方法,获取数据库连接字符串  
           /// </summary>  
           /// <returns></returns>  
           public static string getConnStr()  
           {  
            return WebConfigurationManager.ConnectionStrings["connStr"].ToString();  
         }  
     }  
  }  

 看了N多.NET三层的资料,可是自己还没有真的试过用三层来做个小项目,今天终于下决心,用三层做个新闻发布系统,很简单,对数据库的增删查改而已。。。
没想到在刚刚开始的时候就碰到了麻烦,在解决方案里添加新建项目DAL后如何在DAL中的类中读取到web.config里的数据库连接字符串。。。。
经本人多方查证和搜索,终于解决,现在方法记下:
新建项目,如图:

文件→添加→新建项目,如图:

选择C#的内裤,保存位置最好是在WEB项目所有的目录,如图:

这时解决方案管理器如图,可以把默认的类名改一下:

前戏准备完了之后,我们就开始在web.config里写上数据库连接字符串了,下面是我的web.config的代码片段:

Xml代码 复制代码
  1. <connectionStrings>  
  2.     <add name="connStr" connectionString="server=niunan\sqlexpress; database=newssystem; uid=sa; pwd=123456"/>  
  3. </connectionStrings>  
    <connectionStrings>
        <add name="connStr" connectionString="server=niunan\sqlexpress; database=newssystem; uid=sa; pwd=123456"/>
    </connectionStrings>


我们要从DAL层中读取到web.config中的信息,得使用System.Web下的***类,可是在我们在类开关输入using System.Web.发现后面的代码自动提示点不出来,大家可以看一下解决方案管理器中DAL层的引用:

,发现并没有System.Web,所以之前我们的代码自动提示就出不来,接下来我们只要引出System.Web就行了,此外,经测试,还得引入System.Configuration才能读取到web.config中的信息,如图添加引用:



添加成功后解决方案管理器如图:

这时我们就可以使用代码智能提示引用System.Web.Configuration了,然后我们就能开始获取web.config中的内容了,下面是我写的SQLHelper.cs的代码:

C#代码 复制代码
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Web.Configuration;   // 要引用这个命名空间  
  6.   
  7. namespace DAL  
  8. {  
  9.     public class SQLHelper  
  10.     {  
  11.         /// <summary>  
  12.         ///  测试方法,获取数据库连接字符串  
  13.         /// </summary>  
  14.         /// <returns></returns>  
  15.         public static string getConnStr()  
  16.         {  
  17.             return WebConfigurationManager.ConnectionStrings["connStr"].ToString();  
  18.         }  
  19.     }  
  20. }  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Configuration;   // 要引用这个命名空间

namespace DAL
{
    public class SQLHelper
    {
        /// <summary>
        ///  测试方法,获取数据库连接字符串
        /// </summary>
        /// <returns></returns>
        public static string getConnStr()
        {
            return WebConfigurationManager.ConnectionStrings["connStr"].ToString();
        }
    }
}


紧接着我们就在页面上先测试一下是否成功的获取出来,同样的,在WEB项目中要使用DAL层里的东西,因为属于不同的二个项目,所以也得引用DAL,如图:


引用后发现解决方案管理器里没啥变化,的确是没啥变化,可是的确是已经引用了DAL层了,这时就可以写代码了,以下是我的default.aspx.cs的源码,在这里只是测试一下能不能获取出来,页面上什么都没放:

C#代码 复制代码
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using DAL;   // 引用DAL层,注意大小写,要与那边建立的内裤名称相对应  
  8.   
  9. public partial class _Default : System.Web.UI.Page   
  10. {  
  11.     protected void Page_Load(object sender, EventArgs e)  
  12.     {  
  13.         // 在那边我是使用了static静态方法,所以可以直接通过类名点出他的方法  
  14.         Response.Write(DAL.SQLHelper.getConnStr());  
  15.     }  
  16. }  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;   // 引用DAL层,注意大小写,要与那边建立的内裤名称相对应

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // 在那边我是使用了static静态方法,所以可以直接通过类名点出他的方法
        Response.Write(DAL.SQLHelper.getConnStr());
    }
}


最后预览页面,即可看到读取出来了。。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值