数据访问层,即DataAccess层。

下面放送一些奶酪;

实例1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Com.ERuipan.DataAccessLirary;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using Npgsql;
using System.Web;namespace XXXXXXXXServiceLibrary
{public class DataAccess{public static string GetConn(){XmlControl xc = new XmlControl(System.Web.HttpContext.Current.Server.MapPath("~/web.config"), false, "configuration");DataView dv = xc.GetData("configuration/appSettings");return dv[0][1].ToString();}public static string pgConnStr = GetConn(); //"Server=192.168.1.200;Port=5432;User Id=postgres;Password=admin110;Database=xxxx";public DataAccess(){}public DataTable GetDataTable(string sql){DataSet ds = XXXXDal.Selcet_tables(DatabaseType.PG, pgConnStr, sql);if (ds != null && ds.Tables.Count > 0)return ds.Tables[0];elsereturn new DataTable();}public DataTable GetDataTable(string commandText, int start, int maxRecord){var dt = new DataTable();using (var connection = new NpgsqlConnection(pgConnStr)){connection.Open();new NpgsqlDataAdapter(commandText, connection).Fill(start, maxRecord, dt);}return dt;}public DataSet GetDataSet(string sql){return ERuiPanDal.Selcet_tables(DatabaseType.PG, pgConnStr, sql);}public string GetJsonData(string sql){return GetJsonData(sql, "data");}public string GetJsonData(string sql, string name){return FormatTool.ToJson(GetDataTable(sql), name);}public string GetJsonData(DataTable dt, string name){return FormatTool.ToJson(dt, name);}public string GetJsonData(DataView dv, string name){return FormatTool.ToJson(dv, name);}public int ExcuteNonQuery(string sql){return ExcuteNonQuery(sql, null);}public int ExcuteNonQuery(string sql, params SqlParameter[] commandParameters){IDbConnection pgConn = null;try{pgConn = XXXXDal.CreateConnection(pgConnStr, DatabaseType.PG);return XXXXDal.ExcuteNonQuery(DatabaseType.PG, pgConn, sql, commandParameters);}catch{return -1;}finally {pgConn.Close();pgConn.Dispose();pgConn = null;}}public int ExcuteNonQuery(Array sqls){string[] strsqls = new string[sqls.Length];for (int i = 0; i < sqls.Length; i++)strsqls[i] = sqls.GetValue(i).ToString();return ExcuteNonQuery(strsqls);}public int ExcuteNonQuery(string[] sqls){IDbConnection pgConn = ERuiPanDal.CreateConnection(pgConnStr, DatabaseType.PG);pgConn.Open();IDbTransaction tran = null;int count = 0;try{tran = pgConn.BeginTransaction();string sqlstr = string.Empty;foreach (string sql in sqls)//count += XXXXDal.ExcuteNonQuery(DatabaseType.PG, tran, sql, null);{count++;if (string.IsNullOrEmpty(sqlstr)){sqlstr = sql;}else{sqlstr += ";" + sql;}}int ret = XXXXDal.ExcuteNonQuery(DatabaseType.PG, tran, sqlstr, null);{if (ret <= 0){count = 0;}}tran.Commit();}catch (Exception ex) { var a = ex; tran.Rollback(); }finally { pgConn.Close();pgConn.Dispose();pgConn = null;tran = null;}return count;}}
}

实例2

BaseRepository是数据访问操作的基类;
using System.Linq;
using System.Data;namespace Langben.DAL
{public abstract class BaseRepository<T> where T : class
{///<summary>/// 获取所有///</summary>///<returns>集合</returns>public virtual IQueryable<T> GetAll(){using (SysEntities db = new SysEntities()){return GetAll(db);}}///<summary>/// 获取所有///</summary>///<returns>集合</returns>public virtual IQueryable<T> GetAll(SysEntities db){return db.CreateObjectSet<T>().AsQueryable();}///<summary>/// 创建///</summary>///<param name="db">实体数据</param>///<param name="entity">将要创建的对象</param>public virtual void Create(SysEntities db, T entity){if (entity != null){db.CreateObjectSet<T>().AddObject(entity);}}///<summary>/// 创建///</summary>///<param name="entity">一个对象</param>///<returns></returns>public virtual int Create(T entity){using (SysEntities db = new SysEntities()){Create(db, entity);return this.Save(db);}}///<summary>/// 创建对象集合///</summary>///<param name="db">实体数据</param>///<param name="entitys">对象集合</param>public virtual void Create(SysEntities db, IQueryable<T> entitys){foreach (var entity in entitys){this.Create(db, entity);}}///<summary>/// 编辑一个对象///</summary>///<param name="db">实体数据</param>///<param name="entity">将要编辑的一个对象</param>public virtual T Edit(SysEntities db, T entity){db.CreateObjectSet<T>().Attach(entity);db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);return entity;}///<summary>/// 编辑对象集合///</summary>///<param name="db">实体数据</param>///<param name="entitys">对象集合</param>public virtual void Edit(SysEntities db, IQueryable<T> entitys){foreach (T entity in entitys){this.Edit(db, entity);}}///<summary>/// 提交保存,持久化到数据库///</summary>///<param name="db">实体数据</param>///<returns>受影响行数</returns>public int Save(SysEntities db){return db.SaveChanges();}}
}

所有数据实体都继承自IBaseEntity接口;

namespace Langben.DAL
{
public interface IBaseEntity
{
}
}//业务实体(SysException)的定义和验证元数据(SysExceptionMetadata)
using System;
using System.ComponentModel.DataAnnotations;namespace Langben.DAL
{[MetadataType(typeof(SysExceptionMetadata))]//
public partial class SysException : IBaseEntity
{#region 自定义属性,即由数据实体扩展的业务实体
#endregion}public class SysExceptionMetadata
{[ScaffoldColumn(false)][Display(Name = "主键", Order = 1)]public object Id { get; set; }[ScaffoldColumn(true)][Display(Name = "类型", Order = 2)][StringLength(200, ErrorMessage = "长度不可超过200")]public object LeiXing { get; set; }[ScaffoldColumn(true)][Display(Name = "内容", Order = 3)][StringLength(4000, ErrorMessage = "长度不可超过4000")]public object Message { get; set; }[ScaffoldColumn(true)][Display(Name = "结果", Order = 4)][StringLength(200, ErrorMessage = "长度不可超过200")]public object Result { get; set; }[ScaffoldColumn(true)][Display(Name = "备注", Order = 5)][StringLength(4000, ErrorMessage = "长度不可超过4000")]public object Remark { get; set; }[ScaffoldColumn(true)][Display(Name = "状态", Order = 6)][StringLength(200, ErrorMessage = "长度不可超过200")]public object State { get; set; }[ScaffoldColumn(true)][Display(Name = "创建时间", Order = 7)][DataType(DataType.DateTime,ErrorMessage="时间格式不正确")]public DateTime? CreateTime { get; set; }[ScaffoldColumn(true)][Display(Name = "创建人", Order = 8)][StringLength(200, ErrorMessage = "长度不可超过200")]public object CreatePerson { get; set; }
}
}

数据访问层执行数据库中的增删改操作;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;namespace Langben.DAL
{///<summary>
/// 异常处理
///</summary>
public class SysExceptionRepository : BaseRepository<SysException>,IDisposable
{///<summary>/// 通过主键id,获取异常处理---查看详细,首次编辑///</summary>///<param name="id">主键</param>///<returns>异常处理</returns>public SysException GetById(string id){using (SysEntities db = new SysEntities()){return GetById(db, id);}}///<summary>/// 通过主键id,获取异常处理---查看详细,首次编辑///</summary>///<param name="id">主键</param>///<returns>异常处理</returns>public SysException GetById(SysEntities db, string id){return db.SysException.SingleOrDefault(s => s.Id == id);}///<summary>/// 确定删除一个对象,调用Save方法///</summary>///<param name="id">一条数据的主键</param>///<returns></returns>public int Delete(string id){using (SysEntities db = new SysEntities()){this.Delete(db, id);return Save(db);}}///<summary>/// 删除一个异常处理///</summary>///<param name="db">实体数据</param>///<param name="id">一条异常处理的主键</param>public void Delete(SysEntities db, string id){SysException deleteItem = GetById(db, id);if (deleteItem != null){db.SysException.DeleteObject(deleteItem);}}///<summary>/// 删除对象集合///</summary>///<param name="db">实体数据</param>///<param name="deleteCollection">主键的集合</param>public void Delete(SysEntities db, string[] deleteCollection){//数据库设置级联关系,自动删除子表的内容IQueryable<SysException> collection = from f in db.SysExceptionwhere deleteCollection.Contains(f.Id)select f;foreach (var deleteItem in collection){db.SysException.DeleteObject(deleteItem);}}public void Dispose(){}}
}

实例3

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
using System.Data.OracleClient;namespace SystemDAL
{public class DAL{public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString();public DAL(){//connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString();}/// <summary>/// 执行单条语句/// </summary>/// <param name="sql"></param>/// <returns></returns>public static int ExecuteNonQuery(string sql){int x = 0;try{// Open a connection to the DB.OracleConnection connOra = new OracleConnection(connectionString);connOra.Open();OracleTransaction tran = connOra.BeginTransaction();// Create a command to execute the sql statement.OracleCommand cmdOra = connOra.CreateCommand();cmdOra.CommandText = sql;x = cmdOra.ExecuteNonQuery();tran.Commit();connOra.Close();connOra.Dispose();cmdOra.Dispose();}catch (Exception ex){//log.Error(ex.StackTrace);}return x;}/// <summary>/// 带参数操作数据库方法/// </summary>/// <param name="str"></param>/// <param name="sql"></param>/// <returns></returns>public int ExecuteNonQuery2(string sql, OracleParameter[] param){int x=0;try{OracleConnection connOra = new OracleConnection(connectionString);connOra.Open();OracleTransaction tran = connOra.BeginTransaction();OracleCommand cmdOra = connOra.CreateCommand();cmdOra.Transaction = tran;cmdOra.CommandType = CommandType.Text;cmdOra.CommandText = sql;cmdOra.Parameters.Clear();cmdOra.Parameters.AddRange(param);x = cmdOra.ExecuteNonQuery();tran.Commit();connOra.Close();connOra.Dispose();cmdOra.Dispose();}catch (Exception ex){throw ex;}return x;}public static DataTable ExecuteDataTable(String cmdText){DataTable dt = new DataTable();//DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);try{// Open a connection to the DB.//DbConnection connOra = factory.CreateConnection();OracleConnection connOra = new OracleConnection(connectionString);//connOra.ConnectionString = connectionString;connOra.Open();// Create a command to execute the sql statement.//DbCommand cmd = factory.CreateCommand();OracleCommand cmd = connOra.CreateCommand();cmd.CommandText = cmdText;OracleDataAdapter ada = new OracleDataAdapter();//DbDataAdapter ada = factory.CreateDataAdapter();// new OracleDataAdapter(cmd1);                ada.SelectCommand = cmd;ada.Fill(dt);connOra.Close();connOra.Dispose();cmd.Dispose();}catch (Exception ex){string str = ex.Message;}return dt;}public static DataTable ExecuteDataTable2(String cmdText,OracleParameter[] param){DataTable dt = new DataTable();//DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);try{// Open a connection to the DB.//DbConnection connOra = factory.CreateConnection();OracleConnection connOra = new OracleConnection(connectionString);//connOra.ConnectionString = connectionString;connOra.Open();// Create a command to execute the sql statement.//DbCommand cmd = factory.CreateCommand();OracleCommand cmd = connOra.CreateCommand();cmd.CommandType = CommandType.Text;cmd.CommandText = cmdText;cmd.Parameters.Clear();cmd.Parameters.AddRange(param);OracleDataAdapter ada = new OracleDataAdapter();//DbDataAdapter ada = factory.CreateDataAdapter();// new OracleDataAdapter(cmd1);                ada.SelectCommand = cmd;ada.Fill(dt);connOra.Close();connOra.Dispose();cmd.Dispose();}catch (Exception ex){string str = ex.Message;}return dt;}}
}

实例4

OracleHelper.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Data.SqlClient;
using System.Data.Common;namespace ToolHelper
{public class OracleHelper{//private static readonly Logger log = LogManager.GetCurrentClassLogger();//数据库连接对像   /// <summary>   /// 该实例使用的数据库连接字符串   /// </summary>   ///  //string providerName = ConfigurationManager.ConnectionStrings["OralConnString"].ProviderName;//private string connectionString = ConfigurationManager.ConnectionStrings["OralConnString"].ConnectionString;public static string providerName = "Oracle.DataAccess.Client";//private string connectionString = "User Id=xxxx;Password=yyyy;Data Source=zzzz;enlist=true";//private string connectionString = "User Id=xxxx;Password=yyyy;Data Source=zz;enlist=true";//private string connectionString = " Data Source= (DESCRIPTION ="//                                 + "   (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))"//                                 + "   (CONNECT_DATA ="//                                 + "     (SERVER = DEDICATED)"//                                 + "     (SERVICE_NAME = zz)"//                                 + "   )"//                                 + " );"//                                 + "User Id=xxxx;Password=yyyy";private static string m_ConnectionStr = null;private static string connectionString {get{if (m_ConnectionStr == null){  //Dictionary<string,string> mConfigDic = XmlReader.GetConfigDic;//m_ConnectionStr = mConfigDic["ConnectionString"];m_ConnectionStr = "Data Source=ORCL;User Id=xxxx;Password=yyyy";}return m_ConnectionStr;}}//= "Data Source= (DESCRIPTION ="//                             + "   (ADDRESS = (PROTOCOL = TCP)(HOST =144.28.59.100)(PORT = 1521))"//                             + "   (CONNECT_DATA ="//                             + "     (SERVER = DEDICATED)"//                             + "     (SERVICE_NAME = orcl)"//                             + "   )"//                             + " );"//                             + "User Id=xxxx;Password=abc123";/// <summary>/// 根据查询语句获取数据表/// </summary>/// <param name="cmdText"></param>/// <returns></returns>public static DataTable ExecuteDataTable(String cmdText){DataTable dt = new DataTable();//DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);try{// Open a connection to the DB.//DbConnection connOra = factory.CreateConnection();OracleConnection connOra = new OracleConnection(connectionString);//connOra.ConnectionString = connectionString;connOra.Open();// Create a command to execute the sql statement.OracleCommand cmd = connOra.CreateCommand();//DbCommand cmd = factory.CreateCommand();//cmd.Connection = connOra;cmd.CommandText = cmdText;OracleDataAdapter ada = new OracleDataAdapter(cmd);//DbDataAdapter ada = factory.CreateDataAdapter();// new OracleDataAdapter(cmd1);                //ada.SelectCommand = cmd;ada.Fill(dt);connOra.Close();connOra.Dispose();cmd.Dispose();}catch (Exception ex){//log4net.LogManager.GetLogger("OracleHelper").Info(ex.Message);}return dt;}         /// <summary>/// 执行单条语句/// </summary>/// <param name="sql"></param>/// <returns></returns>public static int ExecuteNonQuery(string sql){//DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);int x = 0;try{// Open a connection to the DB.//DbConnection connOra = factory.CreateConnection();OracleConnection connOra = new OracleConnection(connectionString);//connOra.ConnectionString = connectionString;connOra.Open();DbTransaction tran = connOra.BeginTransaction();// Create a command to execute the sql statement.//DbCommand cmdOra = factory.CreateCommand();OracleCommand cmd = connOra.CreateCommand();cmd.Connection = connOra;cmd.CommandText = sql;x = cmd.ExecuteNonQuery();tran.Commit();connOra.Close();connOra.Dispose();cmd.Dispose();}catch (Exception ex){//log4net.LogManager.GetLogger("OracleHelper").Info(ex.Message);//log.Error(ex.StackTrace);}return x;}public static int ExecuteClobParamNonQuery(string sql, string contentName, string content){DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);int x = 0;try{// Open a connection to the DB.DbConnection connOra = factory.CreateConnection();connOra.ConnectionString = connectionString;connOra.Open();DbTransaction tran = connOra.BeginTransaction();// Create a command to execute the sql statement.DbCommand cmdOra = factory.CreateCommand();cmdOra.Connection = connOra;cmdOra.CommandText = sql;//插入大数据OracleParameter param = new OracleParameter(contentName, OracleDbType.Clob);param.Value = content;cmdOra.Parameters.Add(param);x = cmdOra.ExecuteNonQuery();tran.Commit();connOra.Close();connOra.Dispose();cmdOra.Dispose();}catch (Exception ex){//log.Info(ex.Message);//log.Error(ex.StackTrace);}return x;}/// <summary>/// 执行多条语句/// </summary>/// <param name="strSQLs"></param>/// <returns>返回影响多少行</returns>public static int ExecuteNonQuerySqls(string[] strSQLs){DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);DbConnection connOra = null;DbTransaction tran = null;DbCommand cmdOra = null;int j = strSQLs.Length;int mReturnValue = 0;try{// Open a connection to the DB.connOra = factory.CreateConnection();connOra.ConnectionString = connectionString;connOra.Open();tran = connOra.BeginTransaction();// Create a command to execute the sql statement.cmdOra = factory.CreateCommand();cmdOra.Connection = connOra;foreach (string str in strSQLs){cmdOra.CommandText = str;mReturnValue = mReturnValue + cmdOra.ExecuteNonQuery();}tran.Commit();return mReturnValue;}catch (Exception ex){tran.Rollback();//log.Info(ex.Message);//log.Error(ex.StackTrace);return -1;}finally{connOra.Close();connOra.Dispose();cmdOra.Dispose();}}/// <summary>/// 执行存储过程/// </summary>/// <param name="strProcName"></param>/// <param name="mParams"></param>/// <returns></returns>public static int ExecProc(string strProcName, DbParameter[] mParams){DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);DbConnection connOra = null;DbCommand cmd = null;int j = mParams.Length;try{// Open a connection to the DB.connOra = factory.CreateConnection();connOra.ConnectionString = connectionString;connOra.Open();// Create a command to execute the sql statement.cmd = factory.CreateCommand();cmd.Connection = connOra;cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = strProcName;if (mParams != null){foreach (DbParameter par in mParams){cmd.Parameters.Add(par);}}cmd.ExecuteNonQuery();return 0;}catch (Exception ex){//log.Info(ex.Message);//log.Error(ex.StackTrace);return -1;}finally{connOra.Close();connOra.Dispose();cmd.Dispose();}}}
}

dNet项目数据访问层代码总结相关推荐

  1. MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码

    MyGenertion是一款不错的代码生成ORM代码生成工具,下面是我学习过程中的一些笔记(总结了一下dOOdads C# Quick Reference文档,还有自己在使用和调试过程中遇到的问题及自 ...

  2. 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化

    分层思想的一个核心就是部件化,各个层之间是相互独立的,每一层可以随便抽取换成一个其他语言的版本,但只要与相应的接口吻合就行. 我用的三层架构大致是这样的,基本的三层就不说了,然后分别为业务逻辑层和数据 ...

  3. 机器学习入门(11)— 反向传播的加法节点、乘法节点、加法层代码实现、乘法层代码实现

    1. 加法节点 以 z = x + y 为对象,观察它的反向传播.z = x + y 的导数可由下式(解析性地)计算出来. 计算图如图 5-9 中,反向传播将从上游传过来的导数(本例中是 ∂L∂z\f ...

  4. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

    概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...

  5. YOLO 卷积层代码学习

    YOLO 卷积层代码学习 卷积层的初始化 void im2col_cpu(float* data_im,int channels, int height, int width,int ksize, i ...

  6. dao层和service层和control_maven分模块构建SSM普通web项目:service层代码编写

    接着编写service层的代码. 1.service接口及其实现类 新建service包用于放service接口,还有,新建service.impl包放接口的实现类.如下图,BookService和其 ...

  7. springmvc+mybatis,在mybatis逆向工程的基础上使用模板自动生成controller层代码

    在使用mybatis和srpingmvc的过程中,有一点关注了很久,就是controller层 的代码无法自动生成,于是自己研究写了个小程序,可以通过数据库表.自己定制的controller文件的模板 ...

  8. ASP.NET学习5--N层代码示例

    N层代码 转载于:https://www.cnblogs.com/litaocnblogs/archive/2009/02/16/1391679.html

  9. SpringBoot项目中Controller层代码编写规范整理

    文章目录 Controller层代码规范 SpringMVC接口定义要注意以下常见的几种问题 1. 返回格式不统一 2. 没有考虑失败情况 3. 出现和业务无关的输入参数 Controller层代码规 ...

最新文章

  1. LeetCode 141. 环形链表 简单难度
  2. jvm性能调优实战 - 42JVM性能优化思路Review
  3. 赠人玫瑰,手有余香-期待协作更新机器学习的公益项目
  4. Eclipse——添加库(Add Library)到项目
  5. 实现runable接口创建线程
  6. 愚蠢的领导才会用程序员祭天!!
  7. 资源| 深度学习公众号推荐(值得关注的公众号)
  8. 差点无缘Offer!java开发和运行环境实验报告
  9. GPUImageMovieWriter录制视频问题
  10. 软件界面布局调整推荐
  11. 视觉测量—结构光标定1
  12. 网页打印文档,不弹出浏览器打印对话框设计思路
  13. 详解PON基础知识:OLT、ONU、ONT和ODN
  14. 王者荣耀最低战力查询-王者战区修改
  15. HTML+CSS css3电子杂志画册3D翻页切换动画特效
  16. 三维扫描系列 点云绪论
  17. HTML语言中表格的书写中TD TR TH的英文全称
  18. java读取word的插件,java word 插件
  19. visual studio 添加库文件
  20. 用JAVA开发WebGIS小应用程序

热门文章

  1. 案例:验证用户名是否可用
  2. 基于注解的 IOC 配置——创建对象(Component、Controller、Service、Repository)注入数据(Autowired、Qualifier、Resource、Value)
  3. 计算机组成原理——程序查询方式、程序中断方式
  4. Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
  5. Mac 技术篇-Oracle数据库连接工具SQL Developer启用、关闭自动提交事务,设置自动commit
  6. 在vim下按F4自动添加作者信息,文件创作时间等
  7. 模拟电路技术之基础知识(四)
  8. Ubuntu 14.04 64bit + CUDA 6.5 配置说明
  9. 【量化投资】策略八(聚宽)
  10. [解答] python下如何安装SocketServer?