asp.net2.0已经出来好久了,由于许多的原因一直没有使用,一个月前才开始使用VS2005写东西。

这一个月里又重新学习了一下基础知识,比如多态、接口了什么的。

既然已经到了2.0了嘛,那么以前的数据访问的方式要不要变一下呢?简单看了一下,感觉还是我的那种方式好,至少时我已经用习惯了。那么用.net2.0的方法重写一遍吧。

看了一下Framework 2.0的代码,发现一个问题。虽然表面上ADO.NET的使用没有什么变化(加了一些功能,原来由的功能没有变),但是内部实现有比较大的变化,原来的接口的“工作”都改成了抽象基类。

正好可以利用这个特性来改一下支持多数据库的部分。

数据访问类分成了两个DLL,共 3+3个部分。

本着把变化提出来的思想,我把变化的地方编译成一个DLL,相对不变的地方编译成另一个DLL。

变化的地方又分为三个部分:读取web.config里的信息,基类,写错误日志。

不变的地方分为三个部分:SQL语句部分(静态函数),存储过程部分(需要实例化),填充实体类部分。

下面是容易变化的DLL代码:

}

着里的处理并不是太好,只是还没有想到更好的方法。

主要是读取连接字符串和数据库类型。

==================================================

简单工厂,根据数据库类型返回实例对应的实例。

  1我的数据访问类(第二版)—— for .net2.0 (一)sing System;
  2我的数据访问类(第二版)—— for .net2.0 (一)using System.Collections.Generic;
  3我的数据访问类(第二版)—— for .net2.0 (一)using System.Text;
  4我的数据访问类(第二版)—— for .net2.0 (一)using System.Data;
  5我的数据访问类(第二版)—— for .net2.0 (一)using System.Data.Common;
  6我的数据访问类(第二版)—— for .net2.0 (一)using JYK;
  7我的数据访问类(第二版)—— for .net2.0 (一)
  8我的数据访问类(第二版)—— for .net2.0 (一)namespace JYK.DataAccessLibrary
  9

一、利用了System.Data.Common; 里面的一些基类。

System.Data.Common.DbProviderFactory 还没有研究,好像可以利用它来实现,去掉switch。

但是我觉得数据访问的地方是比较特殊的,

1、数据库的种类是有限的,常用的也就三个(对于.net来说):MS SQL 、Orcale 、Access(属于OleDb),算上不常用的应该超不过十种,全都算上也超不过30种吧。

2、变化慢,出现一种新的数据库要多长时间呢?好长好长吧。

3、运行效率高,访问数据库是很频繁的事情,应该尽量提高运行效率,去掉不必要的地方。

综上所述,我感觉switch更好一点。两外为什么说这里是容易变化的地方呢?因为这里可以做很多的变化。

a、比如说我只用MS SQL,不可能用到其它的数据库,那么我可以把 简化 CreateConnection() 函数,去掉判断的部分,直接返回 SqlConnection()。这样可以提高一点效率。

b、比如我只在MS SQL和 Orcale 之间切换,那么我可以只写两个判断,呵呵,以后再加数据库,再加一条判断就可以了。因为数据库的变换是很慢的,所以改动程序也没有什么麻烦的。


二、这里的处理也不是太好,至少缩小了使用范围,这么写的目的主要是让调用的地方减少点代码。两外也是按照我的习惯来写的。

======================================

记录出错信息的代码

 1我的数据访问类(第二版)—— for .net2.0 (一)using System;
 2我的数据访问类(第二版)—— for .net2.0 (一)using System.Collections.Generic;
 3我的数据访问类(第二版)—— for .net2.0 (一)using System.Text;
 4我的数据访问类(第二版)—— for .net2.0 (一)
 5我的数据访问类(第二版)—— for .net2.0 (一)namespace JYK.DataAccessLibrary
 6

这个对于经常在程序里面使用SQL语句的兄弟们是很实用的,因为它会把出错的SQL语句、出错的描述(ex.Message)、函数名称、出错的时间,写到一个文本文件里面。对于查错是很方便的。存储过程的话帮助不是很大,因为存储过程的出错描述总是让人很晕,记录下来帮助也不是很大。




相关文章:

  • 2022-01-18
  • 2021-09-18
  • 2021-11-27
  • 2021-10-27
  • 2021-08-28
  • 2021-06-14
  • 2022-12-23
  • 2021-05-25
猜你喜欢
  • 2021-11-23
  • 2021-12-31
  • 2022-12-23
  • 2022-12-23
  • 2021-07-12
  • 2021-07-08
  • 2022-12-23
相关资源
相似解决方案