关闭

ADO.NET快速上手实践总结(上)

发表于:2010-8-19 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Jeff Wong(cnblogs)    来源:51Testing软件测试网采编

  本文希望能给大家一些启发。前言:这两天重温经典,对ADO.NET的东西稍微深入的了解了一下,顺便写点代码练练手,全当是复习笔记吧。

  一、简单说说ADO.NET的5大常用对象

  既然说ADO.NET,当然不能免俗地要提到5大常用对象。本文不会对ADO.NET的5大对象和它们的关系进行过多阐释,不过我们应该对下面这张图的结构有个了解:

  关于上图图示中的5大对象,经常做以数据为驱动的mis系统的童鞋应该不会陌生。本文一笔带过。下面我们一步一步实现以ADO.NET为核心的数据访问程序。

  二、数据访问持久化层

  1、IDbOperation接口

using System.Collections.Generic; 
using System.Data; 
using System.Data.Common; 
namespace AdoNetDataAccess.Core.Contract 
{  
   public interface IDbOperation 
   {   
      DbCommand CreateDbCommd(DbConnection sqlConn,DbTransaction transaction, string sqlStr, CommandType cmdType, List<DbParameter> listParams);  
      DbParameter CreateDbPrameter(string paramName, object paramValue);
      DbDataReader ExecuteReader(string sqlStr, CommandType cmdType, List<DbParameter> listParams);     
      DataTable FillDataTable(string sqlStr, CommandType cmdType, List<DbParameter> listParams);  
      DataSet FillDataSet(string sqlStr, CommandType cmdType, List<DbParameter> listParams); 
      object ExecuteScalar(string sqlStr, CommandType cmdType, List<DbParameter> listParams);       
      int ExecuteNonQuery(string sqlStr, CommandType cmdType, List<DbParameter> listParams);     
      /// <summary>   
      /// 批量插入    
      /// </summary>     
      /// <param name="tableName">表名称</param>  
      /// <param name="dt">组装好的要批量导入的datatable</param>    
      /// <returns></returns>    
      bool ExecuteBatchInsert(string tableName, int batchSize, int copyTimeout, DataTable dt);  
      void OpenConnection();    
      void CloseConnection(); 
   }
}

  上面的接口包括增删改查,批量插入以及数据库连接对象的连接和关闭等常用操作,您可以根据命名和参数轻松理解函数的含义。根据楼猪的开发经验,对于平时的数据库操作,上述方法差不多够用了。当然您也可以按照自己需要,重写组织添加其他函数。

  2、针对一种数据源的数据操作实现

  底层的数据操作接口定义好后,就要针对一种数据源,具体实现上述的数据操作。这里楼猪选择了Sql Server。我们也可以实现其他数据源的数据访问操作,按照配置,利用抽象工厂动态反射选择是哪一种数据源的实现。这里按下不表,有心的童鞋自己可以动手一试。下面是具体的实现:

61/6123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号