一个简单实用的“数据库访问层”!(基于C#语言)
2009-02-16 15:15
736 查看
我从学习Asp.Net(C#)开始到将其作为谋生工具至今已18月有余,当初有那么一阵对.NET的CLR很似痴迷,对C#2.0所带来
的新特性也疯狂不已。因为工作环境所迫,已经很久没有使用VS2005/2008作为自己的IDE了,一直在VS2003中煎熬的感觉已
经让我失去了对痛苦的理解,或许这也是逼迫我逐步转向前端开发的一个原动力吧。
这个“数据库访问层”的诞生是在我接触.NET和SQL Sever半年之后,在“师傅”的指点下通过硬背下代码,再到后来逐步
加深对其实质的理解,能够按照师傅的要求在18分钟准确无误的书写下每一行代码,那时所获得满足感,或许只有曾经有过类似
经历的“战友”们才能体味。
该“数据库访问层”还有许多不太完善的地方,例如缺少事务的处理(对于现在我的来说,一般喜欢放在存储过程来完成)等,
希望下列代码对大家有所帮助:
DBAccessFactory 部分代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data.OracleClient;
namespace DBAccessLayer
{
#region 访问数据库类型的枚举
/// <summary>
/// 名称: DBAccessType
/// 功能: 访问数据库类型的枚举
/// 作者: 张 亮
/// 版本: V1.0
/// 时间: 2008年5月14日
/// 修改人:
/// 修改时间:
/// 修改描述:
/// </summary>
public enum DBAccessType
{
SQL, // 以Sql形式访问数据库
ODBC, // 以Odbc形式访问数据库
OLEDB, // 以OleDb形式访问数据库
ORACLE // 以Oracle形式访问数据库
}
#endregion
#region 数据库访问工厂类
/// <summary>
/// 名称: DBAccessFactory
/// 功能: 数据库访问工厂类
/// 作者: 张 亮
/// 版本: V1.0
/// 时间: 2008年5月14日
/// 修改人:
/// 修改时间:
/// 修改描述:
/// </summary>
public class DBFactory
{
#region 获取数据库访问对象的静态方法
/// <summary>
/// 获取数据库访问对象的静态方法
/// </summary>
/// <param name="type">数据库访问的类型</param>
/// <param name="connectionString">访问数据库的连接字符串</param>
/// <returns>返回数据库访问对象(dbAccess)</returns>
public static IDBAccess GetDBAccess(DBAccessType type, string connectionString)
{
IDBAccess dbAccess = null;
switch (type)
{
case DBAccessType.SQL:
dbAccess = new DBAccess<SqlConnection, SqlCommand, SqlDataAdapter>(connectionString);
break;
case DBAccessType.ODBC:
dbAccess = new DBAccess<OdbcConnection, OdbcCommand, OdbcDataAdapter>(connectionString);
break;
case DBAccessType.OLEDB:
dbAccess = new DBAccess<OleDbConnection, OleDbCommand, OleDbDataAdapter>(connectionString);
break;
case DBAccessType.ORACLE:
dbAccess = new DBAccess<OracleConnection, OracleCommand, OracleDataAdapter>(connectionString);
break;
}
return dbAccess;
}
#endregion
}
#endregion
}
以上即是“数据库访问层”的完整部分,注释应该很详细了,代码细节我就不多说了,大家花费一点宝贵的时间仔细的把代码看完
应该就很清楚了。或许以上代码对刚接触.NET不久的新手带来一点点困惑,因为代码中用到接口、泛型、工厂模式等概念,最终希望我
的这点奉献精神能带给大家一点帮助,呵呵。
的新特性也疯狂不已。因为工作环境所迫,已经很久没有使用VS2005/2008作为自己的IDE了,一直在VS2003中煎熬的感觉已
经让我失去了对痛苦的理解,或许这也是逼迫我逐步转向前端开发的一个原动力吧。
这个“数据库访问层”的诞生是在我接触.NET和SQL Sever半年之后,在“师傅”的指点下通过硬背下代码,再到后来逐步
加深对其实质的理解,能够按照师傅的要求在18分钟准确无误的书写下每一行代码,那时所获得满足感,或许只有曾经有过类似
经历的“战友”们才能体味。
该“数据库访问层”还有许多不太完善的地方,例如缺少事务的处理(对于现在我的来说,一般喜欢放在存储过程来完成)等,
希望下列代码对大家有所帮助:
DBAccessFactory 部分代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data.OracleClient;
namespace DBAccessLayer
{
#region 访问数据库类型的枚举
/// <summary>
/// 名称: DBAccessType
/// 功能: 访问数据库类型的枚举
/// 作者: 张 亮
/// 版本: V1.0
/// 时间: 2008年5月14日
/// 修改人:
/// 修改时间:
/// 修改描述:
/// </summary>
public enum DBAccessType
{
SQL, // 以Sql形式访问数据库
ODBC, // 以Odbc形式访问数据库
OLEDB, // 以OleDb形式访问数据库
ORACLE // 以Oracle形式访问数据库
}
#endregion
#region 数据库访问工厂类
/// <summary>
/// 名称: DBAccessFactory
/// 功能: 数据库访问工厂类
/// 作者: 张 亮
/// 版本: V1.0
/// 时间: 2008年5月14日
/// 修改人:
/// 修改时间:
/// 修改描述:
/// </summary>
public class DBFactory
{
#region 获取数据库访问对象的静态方法
/// <summary>
/// 获取数据库访问对象的静态方法
/// </summary>
/// <param name="type">数据库访问的类型</param>
/// <param name="connectionString">访问数据库的连接字符串</param>
/// <returns>返回数据库访问对象(dbAccess)</returns>
public static IDBAccess GetDBAccess(DBAccessType type, string connectionString)
{
IDBAccess dbAccess = null;
switch (type)
{
case DBAccessType.SQL:
dbAccess = new DBAccess<SqlConnection, SqlCommand, SqlDataAdapter>(connectionString);
break;
case DBAccessType.ODBC:
dbAccess = new DBAccess<OdbcConnection, OdbcCommand, OdbcDataAdapter>(connectionString);
break;
case DBAccessType.OLEDB:
dbAccess = new DBAccess<OleDbConnection, OleDbCommand, OleDbDataAdapter>(connectionString);
break;
case DBAccessType.ORACLE:
dbAccess = new DBAccess<OracleConnection, OracleCommand, OracleDataAdapter>(connectionString);
break;
}
return dbAccess;
}
#endregion
}
#endregion
}
以上即是“数据库访问层”的完整部分,注释应该很详细了,代码细节我就不多说了,大家花费一点宝贵的时间仔细的把代码看完
应该就很清楚了。或许以上代码对刚接触.NET不久的新手带来一点点困惑,因为代码中用到接口、泛型、工厂模式等概念,最终希望我
的这点奉献精神能带给大家一点帮助,呵呵。
相关文章推荐
- Silverlight实用窍门系列:30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例【实例源码+数据库下载】
- 一个基于EntityFramework Core的简单数据库访问层,适用于轻量级数据库业务
- 一个简单实用的数据库访问层(转)
- 一个简单实用的sql数据库查询工具(c#)
- 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器 分类: C# 2014-10-27 16:27 594人阅读 评论(0) 收藏
- SqlLiteHelper:基于C#的SqlLite数据库访问基类
- Silverlight实用窍门系列:30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例【实例源码+数据库下载】
- 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库
- 基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)
- 一个通用数据库访问类(C#,SqlClient)
- 一个基于C#的简单串口示例
- 一个简单的,适应多种数据库之间存取操作的数据库访问层
- 一个Windows后台服务(.Net的C#版) - 定时访问数据库循环发送手机短信
- 一个通用数据库访问类(C#,SqlClient)
- 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器 分类: C# 2014-10-27 16:27 593人阅读 评论(0) 收藏
- 简单实用的DataSet更新数据库的类+总结(c#)
- 30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例
- 一个简单的 C# 语言编写的 WIN32 程序
- 基于gulp编写的一个简单实用的前端开发环境
- 关于轻量级数据库SQLite一个简单的SQLiteHelper访问数据库封装类