参照别人的方法,顺便再次复习下ADO.NET的相关知识。为自己的类库做准备。

namespace Common.SqlHelper
{/// <summary>/// ADO.NET-------底层的数据操作/// </summary>public class SqlHelper{/// <summary>/// 通过构造函数来实例化连接字符串/// </summary>/// <param name="connectionString"></param>public SqlHelper(string connectionString){this.connectionString = connectionString;}private string connectionString;/// <summary>/// 设置DB访问字符串/// </summary>public string ConnectionSrting{set { connectionString = value; }}#region 执行一个查询,返回查询的结果集+ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)public DataTable ExecuteDataTable(string sql){return ExecuteDataTable(sql, CommandType.Text, null);}public DataTable ExecuteDataTable(string sql, CommandType commandType){return ExecuteDataTable(sql, commandType, null);}/// <summary>/// 执行一个查询,返回查询的结果集。/// </summary>/// <param name="sql"></param>/// <param name="commandtype"></param>/// <param name="parameters"></param>/// <returns></returns>public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters){DataTable data = new DataTable();  //实例化datatable,用于装载查询的结果集using (SqlConnection conn = new SqlConnection(connectionString)){using (SqlCommand cmd = new SqlCommand(sql, conn)){cmd.CommandType = commandtype;if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);   //将参数添加到sql语句中。}}//申明sqldataadapter,通过cmd来实例化它,这个是数据设备器,可以直接往datatable,dataset中写入。SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.Fill(data);   //利用Fill来填充。}}return data;}#endregion#region 返回一个SqlDataReader对象。public SqlDataReader ExecuteReader(string sql){return ExecuteReader(sql, CommandType.Text, null);}public SqlDataReader ExecuteReader(string sql, CommandType commandType){return ExecuteReader(sql, commandType, null);}/// <summary>/// 返回一个SqlDataReader,从 SQL Server 数据库读取行的只进流的方式/// </summary>/// <returns></returns>public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters){SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(sql, conn);if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}}conn.Open();//CommandBehavior.CloseConnection+关闭reader对象关闭与其连接的Connection对象。return cmd.ExecuteReader(CommandBehavior.CloseConnection);}#endregion#region 执行一个查询,返回结果集的首行首列。忽略其他行,其他列/// <summary>/// 只执行sql语句/// </summary>/// <param name="sql"></param>/// <returns></returns>public object ExecuteScalar(string sql){return ExecuteScalar(sql, CommandType.Text, null);}/// <summary>/// 可以执行存储过程/// </summary>/// <param name="sql"></param>/// <param name="commandType"></param>/// <returns></returns>public object ExecuteScalar(string sql, CommandType commandType){return ExecuteScalar(sql, commandType, null);}/// <summary>/// 执行一个查询,返回结果集的首行首列/// </summary>/// <param name="sql"></param>/// <param name="commandType"></param>/// <param name="parameters"></param>/// <returns></returns>public object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters){SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(sql, conn);cmd.CommandType = commandType;if (parameters != null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(parameter);}}conn.Open();//cmd.ExecuteScalar()+执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。object result = cmd.ExecuteScalar();conn.Close();return result;}#endregion#region 进行CRUD操作public int ExecuteNonQuery(string sql){return ExecuteNonQuery(sql,CommandType.Text,null);}public int ExecuteNonQuery(string sql,CommandType commandType){return ExecuteNonQuery(sql, commandType, null);}/// <summary>/// 对数据库进行增删改的操作/// </summary>/// <param name="sql">执行的Sql语句</param>/// <param name="commandType">要执行的查询语句类型,如存储过程或者sql文本命令</param>/// <param name="parameters">Transact-SQL语句或者存储过程的参数数组</param>/// <returns></returns>public int ExecuteNonQuery(string sql,CommandType commandType,SqlParameter[]parameters){SqlConnection conn=new SqlConnection(connectionString);SqlCommand cmd=new SqlCommand(sql,conn);cmd.CommandType = commandType;if (parameters!=null){foreach (SqlParameter parameter in parameters){cmd.Parameters.Add(cmd);}}conn.Open();int count = cmd.ExecuteNonQuery();conn.Close();return count;}#endregion#region  返回当前连接的数据库中所有用户创建的数据库/// <summary>/// 返回当前连接的数据库中所有用户创建的数据库/// </summary>        /// <param name="tableName">表名</param>/// <returns></returns>public DataTable GetTable(string tableName){DataTable table = new DataTable();using (SqlConnection conn = new SqlConnection(connectionString)){conn.Open();table = conn.GetSchema(tableName);}return table;} #endregion}
}

转载于:https://www.cnblogs.com/netxiaohui/p/5576167.html

ADO.NET封装的SqlHelper相关推荐

  1. 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...

    源代码:13033480群共享 ADO.NET的SqlServer.NET数据提供程序,核心的类有4个,而在这个订餐系统中,我们只使用了3个,SqlConnection.SqlCommand.SqlD ...

  2. ADO.NET复习——自己编写SqlHelper类

    今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...

  3. ADO.NET知识学习总结

    1. 概述 使用的命名空间: System.Data.SqlClient 连接字符串    服务器/数据库实例+数据库名称+安全信息+用户名+密码  可参考http://www.connections ...

  4. ADO.NET- 基础总结及实例

    1.ADO.NET基础介绍 (1.程序要和数据库交互要通过ADO.NET进行,通过ADO.NET就能在程序中执行SQL了.ADO.Net中提供了对各种不同数据库的统一操作接口. (2.直接在项目中内嵌 ...

  5. SqlHelper帮助类_上(SQLServer数据库含Connection详解)

    在操作数据库时,经常会用到自己封装的SqlHelper.这里主要对SQLServer数据库的Sqlhelper,主要用于在同一个连接中完成CRUD! 一.ADO.NET中的Connection详解: ...

  6. 提高ADO性能的优秀经验

    一.概述 "性能"这一术语有着几种不同的.差异微妙的含义.当人们谈到某个东西性能多少好时,他们想要表达的意思可能就是在一定的时间之内它完成了多少工作.例如,一个性能好的发动机运行起 ...

  7. System.Data.SQLite(SQLite ADO.NET 2.0的提供程序,已经包含Sqlite引擎)

    今天在研究其他的技术的时候,重新查看了一下Sqlite在.NET下的最新实现.结果发现这样一个好东西.下面把其首页的说明翻译如下: System.Data.SQLite 是一个原始SQLite的加强版 ...

  8. c# 常用数据库封装

    我不为大家贴代码了,没有意思,有点多,我主要给大家介绍一下,源码会上传CSDN和GIT:我定义了一个ADO.NET操作接口,所有按照接口封装 1.sqlite数据库(需要SQLite.Interop. ...

  9. C#中Redis封装的类

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 上两篇博文为大家分享<SCPPO:Redis简介>和<SCPPO:W ...

最新文章

  1. JAVA的内存模型及结构
  2. 想要设计自己的微服务?看这篇文章就对了
  3. 【异或运算】 - 交换2个数
  4. leetcode 18. 四数之和(双指针)
  5. Spark Relational Cache实现亚秒级响应的交互式分析
  6. SpringBoot官方热部署和远程调试神器,真带劲!
  7. shell获取执行脚本路径
  8. 互联网架构设计中的poll和push
  9. Windows用户最佳远程控制器——Xmanager
  10. tensorflow roadshow 全球巡回演讲 会议总结
  11. 初生牛犊不怕虎:年轻人的成长之路
  12. 用计算机写作文主题,《用计算机写作文》教学设计(周未定)
  13. 【图文并茂】一文讲透Dubbo负载均衡之最小活跃数算法
  14. 揭秘大众点评的大数据实时计算
  15. ecli中@Data标签getset不起作用
  16. vscode配置c/c++编译环境(最终解决办法)
  17. 前端的几种数据存储方式
  18. VBA对单元格及区域、行、列的选择、写入、复制、删除、插入等 ​
  19. c语言移位函数intrins,单片机C语言实现NOP 循环移位
  20. 数据分析与数据挖掘方面招聘的笔试题分享

热门文章

  1. 加载spring上下文的多种方式总结
  2. Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;
  3. openerp学习笔记 context 的应用
  4. 英特尔的VT-x技术是什么?
  5. 15丨基础篇:Linux内存是怎么工作的?
  6. 06丨MongoDB基本操作
  7. python安装报错ox000007b_Python沙箱逃逸的n种姿势
  8. #1049 : 后序遍历(二叉树,DFS)
  9. AIoT让一个屏有了100种用法
  10. 重磅发布!阿里云云效《阿里巴巴DevOps实践指南》