首页 > 数据库 >C# ADO.NET 数据库访问的基础类

C# ADO.NET 数据库访问的基础类

时间:2022-09-05 16:47:51浏览次数:49  
标签:innerDBCommand C# connection protected strSql SQL ADO NET ex

  1 using System;
  2 using System.Data;
  3 using System.Data.SqlClient;
  4 
  5 namespace SQLServerAccess
  6 {
  7     /// <summary>
  8     /// 数据库访问的基础类
  9     /// </summary>
 10     public class BaseAccess
 11     {
 12         /// <summary>
 13         /// 数据库连接对象
 14         /// </summary>
 15         protected SqlConnection innerDBConnection;
 16 
 17         /// <summary>
 18         /// 数据库命令对象
 19         /// </summary>
 20         protected SqlCommand innerDBCommand;
 21 
 22         /// <summary>
 23         /// 构造函数
 24         /// </summary>
 25         public BaseAccess(DbConnection connection)
 26         {
 27             innerDBConnection = connection.Connection;
 28             innerDBCommand = connection.Command;
 29         }
 30 
 31         /// <summary>
 32         /// 构造函数
 33         /// </summary>
 34         public BaseAccess(IDbConnection connection)
 35         {
 36             innerDBConnection = connection as SqlConnection;
 37             innerDBCommand = connection.CreateCommand() as SqlCommand;
 38         }
 39 
 40         /// <summary>
 41         /// 执行查询处理
 42         /// </summary>
 43         /// <param name="strSql">SQL语句</param>
 44         /// <returns>获得的数据</returns>
 45         protected DataSet Select(string strSql)
 46         {
 47             // 声明
 48             DataSet ds = null;
 49 
 50             try
 51             {
 52                 // 初始化
 53                 ds = new DataSet();
 54 
 55                 // 创建SQL命令对象
 56                 innerDBCommand.CommandText = strSql;
 57 
 58                 // SQL语句日志输出
 59                 //Log.WriteInfo("SQL:{0}", strSql);
 60 
 61                 // SQL执行
 62                 SqlDataAdapter objDAdp = new SqlDataAdapter(innerDBCommand);
 63                 objDAdp.Fill(ds);
 64 
 65                 // 返回采集的数据集
 66                 return ds;
 67             }
 68             catch (Exception ex)
 69             {
 70                 throw ex;
 71             }
 72         }
 73 
 74         /// <summary>
 75         /// 执行计数处理
 76         /// </summary>
 77         /// <param name="strSql">执行SQL</param>
 78         /// <returns>处理结果</returns>
 79         protected long Count(string strSql)
 80         {
 81             // 声明
 82             int lngCount = 0;
 83 
 84             try
 85             {
 86                 // 创建SQL命令对象
 87                 innerDBCommand.CommandText = strSql;
 88 
 89                 // SQL语句日志输出
 90                 //Log.WriteInfo("SQL:{0}", strSql);
 91 
 92                 // SQL执行
 93                 lngCount = int.Parse(innerDBCommand.ExecuteScalar().ToString());
 94 
 95                 return lngCount;
 96             }
 97             catch (Exception ex)
 98             {
 99                 throw ex;
100             }
101         }
102 
103         /// <summary>
104         /// 执行SQL,添加、更新、删除
105         /// </summary>
106         /// <param name="strSql">SQL语句</param>
107         protected long Execute(string strSql)
108         {
109             try
110             {
111                 // 创建SQL命令对象
112                 innerDBCommand.CommandText = strSql;
113 
114                 // SQL语句日志输出
115                 //Log.WriteInfo("SQL:{0}", strSql);
116 
117                 // SQL执行
118                 long lonCount = innerDBCommand.ExecuteNonQuery();
119 
120                 // 返回受影响的行数
121                 return lonCount;
122 
123             }
124             catch (Exception ex)
125             {
126                 throw ex;
127             }
128         }
129 
130         /// <summary>
131         /// 执行SQL,返回新增记录的自增ID
132         /// </summary>
133         /// <param name="strSql">SQL语句</param>
134         /// <returns></returns>
135         protected long ExecuteSqlInsert(string strSql)
136         {
137             try
138             {
139                 // 创建SQL命令对象
140                 innerDBCommand.CommandText = strSql + ";SELECT SCOPE_IDENTITY();";
141 
142                 // SQL语句日志输出
143                 //Log.WriteInfo("SQL:{0}", strSql);
144 
145                 // SQL执行
146                 long id = Convert.ToInt64(innerDBCommand.ExecuteScalar());
147 
148                 // 返回受影响的ID
149                 return id;
150             }
151             catch (Exception ex)
152             {
153                 throw ex;
154             }
155         }
156     }
157 }

标签:innerDBCommand,C#,connection,protected,strSql,SQL,ADO,NET,ex
From: https://www.cnblogs.com/smartnn/p/16658674.html

相关文章

  • codeforces.ml/contest/932/problem/D 树上找最长上升子序列长度 倍增算法
    D.Treetimelimitpertest2secondsmemorylimitpertest512megabytesinputstandardinputoutputstandardoutputYouaregivenanodeofthetreew......
  • CF1453D Checkpoints(期望)
    Gildongisdevelopingagameconsistingof......
  • 系统优化软件MacPilot
    还在为系统太卡,找不到好用的系统优化软件而苦恼吗?今天小编就为大家带来了MacPilot,MacPilotMac是一款能够为您修复、检查系统所有垃圾文件,浏览历史等,并为您清理所有不需要......
  • Retinaface ONNX 如何正确导出
    Retinaface是一个人脸检测器,人脸检测天生存在强先验知识,比如近场人脸识别,人脸较大,监控视角下人脸识别通常人脸较小,两者天生对输入的分辨率有个假设,如果人脸很大,不需要大的......
  • 十问 RocketMQ:十年再出发,到底有何不同?
    背景作为一种实时数据的处理平台,消息系统的发展跟业务架构的变迁一直息息相关,那么我们可以透过业务架构的变化来看消息系统的发展历程和未来趋势。经过十多年的发展,Rocket......
  • C#实现HTTP访问类HttpHelper
    在项目开发过程中,我们经常会访问第三方接口,如我们需要接入的第三方接口是WebAPI,这时候我们就需要使用HttpHelper调用远程接口了。示例中的HttpHelper类使用Log4Net记录了......
  • 使用RestHighLevelClient的3种分页实现
    目录from+size分页1.1from+size的命令行实现1.2from+size的RestHighLevelClient实现scroll分页2.1scroll分页的命令行实现2.2scroll的RestHighLevelClient实......
  • 如何用AscendCL的接口开发网络模型推理场景下应用?
    摘要:本期我们来深入讲解网络模型推理场景下,具体怎么做。本文分享自华为云社区《【CANN文档速递09期】应用开发之推理场景》,作者:昇腾CANN。我们知道,使用AscendCL接口开......
  • Jenkins持续集成.NET项目(SVN+MSBuild)
    一、安装Jenkins和MSBuild工具官网下载最新版Jenkins (Jenkins运行需要JDK环境,需要提前配置JDK1.8及以上版本),安装完成后,在浏览器打开http://localhost:8080/(默认端口为8......
  • 题解【CF1316E Team Building】
    题目传送门状压DP入门题。设\(f_{i,S}\)表示考虑了前\(i\)个人,队伍放置情况为\(S\)时(0表示放置了队员,1表示没有放置)的最大贡献。然后分讨一下\(i\)是去当队......