SQL ServerASP.NET开发,从二层至三层,至面向对象 (3)

继承上一篇《ASP.NET开发,从二层至三层,至面向对象
(2)
http://www.cnblogs.com/insus/p/3825805.html 。大家学会了怎么着创设对象,把BizBase类从页面级分离,解耦合度。亲的更亲,疏的更疏。

下边使用的是Access数据,将达不到扩展与提高的渴求。程序在前进的同时,有或许会转接SQL数据库,或是有个别模块外包。在这一场馆出现,我们必要定制设计规范接口。接手此软开发的团伙,所在逻辑处层中,实作这一个接口即可。

下边Insus.NET尝试写一个接口,在先后中选拔SQL
Server的团伙,不管是在逻辑层中写SQL语句的,依然在逻辑层传入参数引用存储进程的,均可完毕合并的接口。

SQL Server 1

地方标记2的归来DbdataReader函数,是为着它能让Access数据库(System.Data.奥莱Db.奥莱DbData里德r)与SQL数据库(System.Data.SqlClient.SqlDataReader)均能实作。由于那两头均是继承DbDataReader类。

那样的话,此前写的Access数据库的逻辑类BizBase,实作这么些接口,得修改一下,才合乎接口的专业:
SQL Server 2

SQL Server,上面,Insus.NET达成1个逻辑类,是便利用用户在程序的中习惯写SQL语句的目的:
SQL Server 3

接下去,Insus.NET再落到实处二个逻辑处理类,也是程序与数据库互通的,然则它是协作SQL
Server数据库的贮存进程来的。当然使用存储进程,它自然有参数现身。准备从前,先写贰个类Insus.NET.Parameter:

SQL Server 4

 

 今后就可以创设那一个逻辑类了,它有实作接口IBiz:
SQL Server 5

地点有写八个public的property,将是用来给程序对象传入引用的哪3个囤积进程,以及参数。即使所引述的储存进度没有参数,传入null即可。

SQL Server 6SQL Server 7

        private string _ProcedureName;
        private List<Parameter> _Parameters;

        public string ProcedureName
        {
            get { return _ProcedureName; }
            set { _ProcedureName = value; }
        }
        public List<Parameter> Parameters
        {
            get { return _Parameters; }
            set { _Parameters = value; }
        }

View Code

再有壹个私有方法,它是用来创立参数的。固然size传入为-1的话,系统将动用暗中同意数据类型长度。

SQL Server 8SQL Server 9

 private SqlParameter CreateParameter(string parameterName, SqlDbType dbType, Int32 size, object value)
        {
            SqlParameter sqlParameter;
            if (size > 0)
                sqlParameter = new SqlParameter(parameterName, dbType, size);
            else
                sqlParameter = new SqlParameter(parameterName, dbType);

            sqlParameter.Direction = ParameterDirection.Input;
            sqlParameter.Value = value;

            return sqlParameter;
        }

View Code

BizBaseSqlSp这几个项目中,逐个方法只怕函数,均有几行代码冗余:
SQL Server 10

化解冗余,可以把它抽取出来,写贰个私房的方式:
SQL Server 11

重构好之后的BizBaseSQLSp类:
SQL Server 12

 
只要你不想多数据库集成,你完全抽取其中二个逻辑处理类,作为你的类库。尤其是最终一个。不必再问下边那么些类库的原代码了:http://www.cnblogs.com/insus/archive/2013/05/23/3096045.html
当然,它肯定在asp.net MVC也能用得到。

 
本篇演示源程序(Access DB; .NET Framework 4.0;):
http://download.cnblogs.com/insus/ASPDOTNET/Asp_OOP3.rar

注:小说太长了,写成续集,请关切……

 

相关文章