ADO.NET封装的SqlHelper
参照别人的方法,顺便再次复习下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相关推荐
- 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...
源代码:13033480群共享 ADO.NET的SqlServer.NET数据提供程序,核心的类有4个,而在这个订餐系统中,我们只使用了3个,SqlConnection.SqlCommand.SqlD ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- ADO.NET知识学习总结
1. 概述 使用的命名空间: System.Data.SqlClient 连接字符串 服务器/数据库实例+数据库名称+安全信息+用户名+密码 可参考http://www.connections ...
- ADO.NET- 基础总结及实例
1.ADO.NET基础介绍 (1.程序要和数据库交互要通过ADO.NET进行,通过ADO.NET就能在程序中执行SQL了.ADO.Net中提供了对各种不同数据库的统一操作接口. (2.直接在项目中内嵌 ...
- SqlHelper帮助类_上(SQLServer数据库含Connection详解)
在操作数据库时,经常会用到自己封装的SqlHelper.这里主要对SQLServer数据库的Sqlhelper,主要用于在同一个连接中完成CRUD! 一.ADO.NET中的Connection详解: ...
- 提高ADO性能的优秀经验
一.概述 "性能"这一术语有着几种不同的.差异微妙的含义.当人们谈到某个东西性能多少好时,他们想要表达的意思可能就是在一定的时间之内它完成了多少工作.例如,一个性能好的发动机运行起 ...
- System.Data.SQLite(SQLite ADO.NET 2.0的提供程序,已经包含Sqlite引擎)
今天在研究其他的技术的时候,重新查看了一下Sqlite在.NET下的最新实现.结果发现这样一个好东西.下面把其首页的说明翻译如下: System.Data.SQLite 是一个原始SQLite的加强版 ...
- c# 常用数据库封装
我不为大家贴代码了,没有意思,有点多,我主要给大家介绍一下,源码会上传CSDN和GIT:我定义了一个ADO.NET操作接口,所有按照接口封装 1.sqlite数据库(需要SQLite.Interop. ...
- C#中Redis封装的类
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 上两篇博文为大家分享<SCPPO:Redis简介>和<SCPPO:W ...
最新文章
- JAVA的内存模型及结构
- 想要设计自己的微服务?看这篇文章就对了
- 【异或运算】 - 交换2个数
- leetcode 18. 四数之和(双指针)
- Spark Relational Cache实现亚秒级响应的交互式分析
- SpringBoot官方热部署和远程调试神器,真带劲!
- shell获取执行脚本路径
- 互联网架构设计中的poll和push
- Windows用户最佳远程控制器——Xmanager
- tensorflow roadshow 全球巡回演讲 会议总结
- 初生牛犊不怕虎:年轻人的成长之路
- 用计算机写作文主题,《用计算机写作文》教学设计(周未定)
- 【图文并茂】一文讲透Dubbo负载均衡之最小活跃数算法
- 揭秘大众点评的大数据实时计算
- ecli中@Data标签getset不起作用
- vscode配置c/c++编译环境(最终解决办法)
- 前端的几种数据存储方式
- VBA对单元格及区域、行、列的选择、写入、复制、删除、插入等 ​
- c语言移位函数intrins,单片机C语言实现NOP 循环移位
- 数据分析与数据挖掘方面招聘的笔试题分享