【ADO.NET】7、SQL高级封装
这次是更加简化的进行封装,所有的cmd操作命令都封装到了 Allcmd() 方法里面
别外还有一个别点是 每次执行命令完后,都会垃圾回收, cmd.Parameters.Clear();
是先将执行返回的结果用变量存储,然后在 Clear 掉,然后再将变量值返回出去
   public static string str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
    /// <summary>
        /// 用于查询数据返回 SqlDataReader 类型
        /// </summary>
        /// <param name="ConnectionStrs">连接字符串</param>
        /// <param name="type">操作类型(text/StoredProcedure)</param>
        /// <param name="cmdtext">操作命令(存储过程)</param>
        /// <param name="parameter">参数</param>
        /// <returns></returns>
   public static SqlDataReader ExecuteReader(string ConnectionStrs,CommandType type,string cmdtext, params SqlParameter[] parameter)
     {
            SqlConnection conn = new SqlConnection(ConnectionStrs);
            SqlCommand cmd = conn.CreateCommand();
            Allcmd(conn, cmd, type, cmdtext, parameter);
            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return dr;
      }
        /// <summary>
        /// 用于更新,删除,插入数据返回int类型
        /// </summary>
        /// <param name="ConnectionStrs">连接字符串</param>
        /// <param name="type">操作类型(text/StoredProcedure)</param>
        /// <param name="cmdtext">操作命令(存储过程)</param>
        /// <param name="parameter">参数</param>
        /// <returns></returns>
   public static int ExecuteNoQuery(string ConnectionStrs, CommandType type, string cmdtext, params SqlParameter[] parameter)
     {
            using (SqlConnection conn = new SqlConnection(ConnectionStrs))
            {
                SqlCommand cmd = conn.CreateCommand();
                Allcmd(conn, cmd,type, cmdtext, parameter);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
      }
        /// <summary>
        /// 用于返回首行首列的数据返回object类型
        /// </summary>
        /// <param name="ConnectionStrs">连接字符串</param>
        /// <param name="type">操作类型(text/StoredProcedure)</param>
        /// <param name="cmdtext">操作命令(存储过程)</param>
        /// <param name="parameter">参数</param>
        /// <returns></returns>
    public static object ExecuteScalar(string ConnectionStrs, CommandType type, string cmdtext, params SqlParameter[] parameter)
      {
            using (SqlConnection conn = new SqlConnection(ConnectionStrs))
            {
                SqlCommand cmd = conn.CreateCommand();
                Allcmd(conn, cmd, type, cmdtext, parameter);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }
        }
        /// <summary>
        /// 用于操作全部的连接命令
        /// </summary>
        /// <param name="conn">连接对象</param>
        /// <param name="cmd">命令操作对象</param>
        /// <param name="Type">命令操作类型</param>
        /// <param name="cmdText">执行语句</param>
        /// <param name="cmdParms">参数对象</param>
    private static void Allcmd(SqlConnection conn, SqlCommand cmd, CommandType Type, string cmdText, SqlParameter[] cmdParms)
      {
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            cmd.Connection = conn;
            cmd.CommandType = Type;
            cmd.CommandText = cmdText;
            if (cmdParms != null)
            {
                foreach (SqlParameter par in cmdParms)
                {
                    cmd.Parameters.Add(par);
                }
            }
      }
【ADO.NET】7、SQL高级封装的更多相关文章
- SQL高级查询技巧
		
SQL高级查询技巧 1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...
 - ADO.NET访问SQL Server调用存储过程带回参
		
1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...
 - asp.net将sql语句封装在类库中
		
将sql语句封装在cs中,通过类库的引用使用他的select.update.insert 源代码(cs): using System; using System.Collections.Generic ...
 - JDBC连接SQL server与ADO.NET连接Sql Server对比
		
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
 - SQL 高级查询(层次化查询,递归)
		
SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...
 - Oracle SQL高级编程——分析函数(窗口函数)全面讲解
		
Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...
 - .NET Core开发日志——ADO.NET与SQL Server
		
在.NET世界,如果想要对数据库进行操作,总少不了ADO.NET的身影.在.NET Core里同样离不开那些熟悉的类库与API.这里简略地介绍下如何通过ADO.NET对SQL Server进行不同的处 ...
 - ADO如何记录SQL日志
		
ADO如何记录SQL日志 procedure TfrmDM.ADOConnection1WillExecute(Connection: TADOConnection; var CommandText: ...
 - 13Microsoft SQL Server SQL 高级事务,锁,游标,分区
		
Microsoft SQL Server SQL高级事务,锁,游标,分区 通过采用事务和锁机制,解决了数据库系统的并发性问题. 9.1数据库事务 (1)BEGIN TRANSACTION语句定义事务的 ...
 
随机推荐
- SecureCRT中文乱码解决方法
			
在windows下使用SecureCRT访问MAC主机,发现中文总是乱码.而且默认会话选项设置的字符编码就是UTF-8,和MAC主机默认字符编码一样. 后来通过设置,解决了中文乱码问题. 具体使用了两 ...
 - groupinfo
			
http://www.wenzizone.com/2011/07/07/centos_x64_yum_da_jian_xen.html [yum xen] 配置epel就不说了,ruiy哥的文档有; ...
 - 在 windows 上面安装 tensorflow
			
这个是 tensorflow 官网地址, https://www.tensorflow.org/get_started/os_setup#pip_installation_on_windows 上面有 ...
 - js学习之原型prototype(一)
			
1.javascript中的每个引用类型(原生的.和自定义的)都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用. A.prototype ...
 - 【python自动化第八篇:网络编程】
			
一.拾遗 动态导入模块 目的是为了在导入模块的过程中将模块以字符的格式导入. #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:wanghui ...
 - irefox 34的"Manage Search Engine"去哪了
			
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:irefox 34的"Manage Search Engine"去哪了.
 - html图片滚动效果
			
分享一个手动控制图片左右滚动的代码 先说html部分,建立一个层,写出他的样式,层中在建立一个小一点的层用来存放需要滚动的图片,小层两边再建两个小层用来存放控制图片左右滚动的按钮.代码如下: 样式表: ...
 - 调用webservice,解析返回数据为xml格式的字符串,进行数据绑定
			
DataSet ds = new DataSet(); byte[] byteArray = System.Text.Encoding.Unicode.GetBytes("<?xml ...
 - [GIF] GIF Loop Coder - Animating with Arrays
			
In this lesson, we discuss animating using arrays, and how different data types are interpolated whi ...
 - 简洁 Abstract Factory模式(3.1)
			
镇楼 在某些书中使用了二维图说明抽象工厂模式.非常好,可是yqj2065不喜欢他们的产品族/产品等级,改成品牌/产品类型. 抽象工厂模式(abstract factory pattern)较工厂方法模 ...