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
- }
- }
ADO.NET封装的SqlHelper的更多相关文章
- 自己封装的SqlHelper
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...
- ADO简单封装(MFC)
简单封装了一下,不是很严谨. /************************************************************************/ /* INSTRUC ...
- 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类
using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...
- C# ADO.NET 封装的增删改查
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- ado.net的简单数据库操作(二)之封装SqlHelperl类
今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- Delphi中封装ADO之我重学习记录
delphi adodataset ctstatic 数据是缓存在服务器端还是客户端 答:客户端,开启本地缓存功能后,就能数据在本地批量修改后,再批量提交,减少了网络传送 原创,专业,图文 Del ...
- 不该活着的SqlHelper和DBHelper
前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...
随机推荐
- js跨浏览器的事件处理函数
/* 跨浏览器的事件处理函数 */ var EventUtil = { addHandler : function(element,type,handler){ if(element.addEvent ...
- Spring-Context之八:一些依赖注入的小技巧
Spring框架在依赖注入方面是非常灵活和强大的,多了解点一些注入的方式.方法,绝对能优化配置. idref idref属性可以传入一个bean的名称,虽然它是指向一个bean的引用,但是得到的是该b ...
- AngularJS快速入门指南12:模块
AngularJS模块定义了一个application. 模块是一个application中不同部分的容器. application中的所有控制器都应该属于一个模块. 带有一个控制器的模块 下面这个a ...
- java 锁2
并发,其实是多线程才有的场景... java 多线程? 锁? 现在看来,即使已经工作了4.5年,这仍然不是一个简单的问题. 其实java 本身有提供锁的机制. 比如 Object对象的 wait .n ...
- 每天一个linux命令(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...
- lua实现深度拷贝table表
lua当变量作为函数的参数进行传递时,类似的也是boolean,string,number类型的变量进行值传递.而table,function,userdata类型的变量进行引用传递.故而当table ...
- OutputCache属性详解(四)— SqlDependency
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- iOS-ARC
1. 本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更 ...
- mysql创建数据库
mysql创建数据库 创建utf8编码的数据库 CREATE DATABASE IF NOT EXISTS my_db default character set utf8 COLLATE utf8_ ...
- CooMark网页颜色取色表
CooMark网页颜色取色表 艾利斯兰 - #F0F8FF - aliceblue 古董白 - #FAEBD7 - antiquewhite 浅绿色 - #00FFFF - aqua 碧绿色 - #7 ...