//数据库基类(部分)
using System;
using System.Data;
using System.Data.SqlClient;namespace HaiSky.HtJob
{
    /// <summary>
    /// DbClass 的摘要说明。
    /// </summary>
    public class DbClass
    {
        private string connectionString;
        protected SqlConnection Connection;
        public DbClass(string newConnectionString) //构造函数
        {
            connectionString = newConnectionString;  //接收参数
            Connection = new SqlConnection(connectionString); //创建数据库连接
        }    //建立属性,返回连接字符
        public string ConnectionString
        {
            get
            {
                return connectionString;
            }
        }
  
  //实现带参数查询连接
        private SqlCommand BuildQueryCommand(string storedProcName,IDataParameter[] parameters)
        {
            SqlCommand command = new SqlCommand(storedProcName,Connection);
            command.CommandType = CommandType.StoredProcedure;
            foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            return command;
        }        private SqlCommand BuildIntCommand(string storedProcName,IDataParameter[] parameters)
        {
            SqlCommand command = BuildQueryCommand(storedProcName,parameters);
 command.Parameters.Add(new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));
            return command;        
        }
       
商务层基类(逻辑层)
using System;
namespace Wrox.WebModules.Business
{
    public class BizObject
    {
        public BizObject()
        {
         
        }
    }
}
//下面是用户注册系统开发的三层构架实例:数据库基类采用上面提供的代码。(部分)
//1、    用户注册模块数据层开发:
using System;
using System.Data;
using System.Data.SqlClient;
using HaiSky.HtJob;  //引用基类的空间命名
using System.Xml;
namespace HaiSky.HtJob.Accounts.AccountsData
{
    public class User : HaiSky.HtJob.HaiSkyDbObject
    {
        public User(string newConnectionString) : base(newConnectionString)
        {//直接路由连接字符串
         }
        public int Create(string user_nm,string user_pwd)
        {
            int rowsAffected;
            SqlParameter[] parameters = {new SqlParameter("@user_nm",SqlDbType.Char,16),new SqlParameter("@user_pwd",SqlDbType.Char,16)};
            parameters[0].Value = user_nm;
            parameters[1].Value = user_pwd;
            parameters[2].Direction = ParameterDirection.Output;
            try
            {
                RunProcedure("IF_user_info",parameters,out rowsAffected);
            }
            catch
            {   
    }
            return (int)parameters[2].Value;
        }
    }
}//2、用户注册商务层开发:
using System;
using System.Configuration;
using HaiSky.HtJob.Accounts.AccountsData;
namespace HaiSky.HtJob.Accounts.AccountBusiness
{
    public class User : HaiSky.HtJob.HaiSkyBizObject 
    {
        int userID;
        string userName;
        string userPwd;
        string strConn;
        public User()
        {
            strConn = ConfigurationSettings.AppSettings["strConn"];
        }
        public int Careate()
        {
            AccountsData.User dataUser = new AccountsData.User(strConn);
            userID = dataUser.Create(userName,userPwd);
            return userID;
        }
我想问一下,基类和数据层中的类有什么样的关系,两者是放在一起的吗,我在《asp.net web站点高级编程 -提出问题 -设计方案 -解决问题》这本书里面看到的有的基类好像都没有什么代码,很简单的东西,在数据层中也没有用处似的请大侠帮看看基类和数据层应该怎么样理解,谢谢了。

解决方案 »

  1.   

    1.Web层功能:完成交互,初步合法性检验,形成业务对象(也就是common中的类),调用业务外观层。代码特点:较多使用用户控件,绝大部分功能都用用户控件实现。代码分析:对代码封装性要求不高,主要用于显示界面,所以基本没有使用自定义控件。代码总结:用户控件开发比较容易,如果仅仅封装界面,可以选用用户控件,而不是用自定义控件。2.业务外观层       功能:封装接口,调用业务规则层或者数据访问层。       特点:完成表现层和逻辑层的关联。3.业务逻辑层       功能:实现业务规则,调用数据访问层。       特点:逻辑分析判断为主。4.数据访问层       功能:更新记录集,调用存储过程。       代码特点:继承IDisposable接口,释放非托管资源。       代码总结:对于非托管资源,一定要显式关闭,或者释放。
    5. 基类
       通用类,可以用于其它项目,类库的形式
      

  2.   

    如果要是加上基类这个层,那不就是四层了吗??
    可不可以将基类和数据层放在一起,上面的代码是没有放在一起的
    是继承过来的,他们是在一个数据层中的不同的文件名的吗?
    也就是都放在数据层中,是两个不同的文件。如:database.cs  data.cs
    如果不是这样的,还是将他们分在两面个不同的层中的呢?
      

  3.   

    三层是指b/s结构(客户端浏览器/服务器/数据库)
    两层是c/s(客户端/服务器)不要理解为项目代码的结构
      

  4.   

    三层是指b/s结构(客户端浏览器/服务器/数据库)
    两层是c/s(客户端/服务器)不要理解为项目代码的结构-----------------------------------
    完全错误!
      

  5.   

    三层是指b/s结构(客户端浏览器/服务器/数据库)
    两层是c/s(客户端/服务器)不要理解为项目代码的结构-----------------------------------
    完全错误!------------------完全同意