当前位置: 首页 > 编程日记 > 正文

通用数据库连接执行类(SQL)

using System;
using System.Data;
using System.Data.SqlClient;
namespace Public
{
     ///<summary>
     /// CustomADO 数据连接执行类。
     ///</summary>
     public class CustomADO
     {
         #region定义或创建类私有变量或对象
         private string _connstr;         //连接字符串存储变量
         private string _procedure;       //存储过程名或数据命令字符串变量
         private bool _isprocedure;      //是否使用存储过程
         private SqlConnection _conn;     //连接对象
         private SqlCommand _comm;        //数据命令对象
         private SqlDataReader _dr;       //定义数据读取器
         private DataSet _ds;             //定义数据存储器
        
         #endregion
         #region构造函数
         ///<summary>
         ///构造函数重载1
         ///</summary>
         public CustomADO()
         {
              _connstr = null;
              _procedure = null;
              _isprocedure = false;
              _conn = new SqlConnection();
              _comm = new SqlCommand();
        }
         ///<summary>
         ///构造函数重载2
         ///</summary>
         ///<param name="connstring">数据库连接字符串</param>
         ///<param name="procedure">存储过程或SQL命令</param>
         ///<param name="isprocedure">是否使用存储过程</param>
         public CustomADO(string connstring,string procedure,bool isprocedure)
         {
              _connstr = connstring;
              _procedure = procedure;
              _isprocedure = isprocedure;
              _conn = new SqlConnection();
              _comm = new SqlCommand();
         }
         #endregion
         #region属性
         ///<summary>
         ///设置或获取数据库连接字符串
         ///</summary>
         public string ConnString
         {
              get
              {
                   return _connstr;
              }
              set
              {
                   _connstr = value;
                   _conn.ConnectionString = _connstr;
                   _comm.Connection = _conn;
              }
         }
         ///<summary>
         ///设置或获取存储过程名或SQL命令字符串
         ///</summary>
         public string Procedure
         {
              get
              {
                   return _procedure;
              }
              set
              {
                   _procedure = value;
                   _comm.CommandText = _procedure;
              }
         }
         ///<summary>
         ///设置是否存储过程属性
         ///</summary>
         public bool IsProcedure
         {
              set
              {
                   _isprocedure = value;
                   if (_isprocedure)
                   {
                       _comm.CommandType = CommandType.StoredProcedure;
                   }
                   else
                   {
                       _comm.CommandType = CommandType.Text;
                   }
              }
         }
         #endregion
         #region方法
         ///<summary>
         ///打开连接
         ///</summary>
         public void OpenConnection()
         {
              _conn.Open();
         }
         ///<summary>
         ///关闭连接和数据读取器并清空数据集合
         ///</summary>
         public void CloseConnection()
         {
              _conn.Close();
         }
         ///<summary>
         ///销毁连接对象和方法
         ///</summary>
         public void Dispost()
         {
              if (_ds != null)
              {
                   _ds.Clear();
              }
              if (_dr!=null)
              {
                   _dr.Close();
              }
              _comm.Dispose();
              _conn.Close();
              _conn.Dispose();
         }
         ///<summary>
         ///添加参数重载1
         ///</summary>
         ///<param name="dbtype">参数类型</param>
         ///<param name="parametername">参数名</param>
         ///<param name="pvalue">参数值</param>
         public void AddParameter(DbType dbtype,string parametername,object pvalue)
         {
              SqlParameter p = new SqlParameter();
             
              p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Value = pvalue;
              _comm.Parameters.Add(p);
         }
         ///<summary>
         ///添加参数重载2
         ///</summary>
         ///<param name="dbtype">参数类型</param>
         ///<param name="parametername">参数名</param>
         ///<param name="pvalue">参数值</param>
         ///<param name="parameterdirection">参数类型</param>
         public void AddParameter(DbType dbtype,string parametername,object pvalue,ParameterDirection parameterdirection)
         {
              SqlParameter p = new SqlParameter();
             
              p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Value = pvalue;
              p.Direction = parameterdirection;
              _comm.Parameters.Add(p);
         }
         ///<summary>
         ///添加返回参数
         ///</summary>
         ///<param name="dbtype">DbType参数类型</param>
         ///<param name="parametername">参数名</param>
         public void AddParameterReturnValue(DbType dbtype,string parametername)
         {
              SqlParameter p = new SqlParameter();
            p.DbType = dbtype;
              p.ParameterName = parametername;
              p.Direction = ParameterDirection.ReturnValue;
              _comm.Parameters.Add(p);
         }
         ///<summary>
         ///返回DataSet对象
         ///</summary>
         ///<returns>执行数据命令后返回的DataSet对象</returns>
         public DataSet ExecuteDataSet()
         {
              _ds = new DataSet();
              SqlDataAdapter da = new SqlDataAdapter();
              da.SelectCommand = _comm;
              da.Fill(_ds);
              return _ds;
         }
         ///<summary>
         ///返回DataReader对象 重载1
         ///</summary>
         ///<returns>数据读取器</returns>
         public SqlDataReader ExecuteDataReader()
         {
              _dr = _comm.ExecuteReader();
              return _dr;
         }
         ///<summary>
         ///返回DataReader对象 重载2
         ///</summary>
         ///<param name="behavior">CommandBehavior参数,对参数结果的数据库影响说明</param>
         ///<returns>数据读取器</returns>
         public SqlDataReader ExecuteDataReader(CommandBehavior behavior)
         {
              _dr = _comm.ExecuteReader(behavior);
              return _dr;
         }
         ///<summary>
         ///执行数据命令并返回影响行数
         ///</summary>
         public int ExecuteNonQuery()
         {
              return _comm.ExecuteNonQuery();
         }
         ///<summary>
         ///通过参数名获得参数值
         ///</summary>
         ///<param name="parametername">参数名</param>
         ///<returns>返回参数值</returns>
         public object GetParameterValue(string parametername)
         {
              object returnvalue;
              returnvalue = _comm.Parameters[parametername].Value;
             
              return returnvalue;
         }
         #endregion
     }
}

转载于:https://www.cnblogs.com/ZetaChow/archive/2006/03/28/2237454.html

相关文章:

Alpha冲刺 - (5/10)

Part.1 开篇 队名&#xff1a;彳艮彳亍团队 组长博客&#xff1a;戳我进入 作业博客&#xff1a;班级博客本次作业的链接 Part.2 成员汇报 组员2 黄志铭 过去两天完成了哪些任务学习了逻辑层js与界面的数据传送完成共享编辑的界面以及相关接口接下来的计划1.对之前的界面完成逻…

session对象运行机制

当你看到 “会话” 这个词的时候&#xff0c;你会怎么理解呢&#xff1f;是交流、对话的意思吗&#xff1f;那毫无疑问绝对是的啦&#xff0c;只不过那是传统意义上的&#xff0c;或者说是日常生活中的意思&#xff0c;在计算机科学领域&#xff0c;它的意思就要引申一些了。在…

git查看某个文件的提交历史

git log --prettyoneline 文件名接下来使用git show显示具体的某次的改动。git show <git提交版本号> <文件名>转载于:https://www.cnblogs.com/ppsunlight/p/7095612.html

省市县三级级联(模块化开发)

不废话&#xff0c;上代码&#xff1a; 先看一下项目列表&#xff1a; tool包里的代码&#xff1a; 请看&#xff1a;tool包 vo.Area类&#xff1a; package com.jd.vo;public class Area {private String id;private String name;private String code;private String pa…

IOS - 设置与帮助界面

设置与帮助 改动头像, 改动password, 移动客服, 帮助, 声明, 关于我们. 代码 // // IndexSetting600ViewController.h // SymptomChecker // // Created by wang on 2015-7-21. // //#import "CYTableViewController.h"interface IndexSetting600ViewController …

CentOS虚拟机和物理机共享文件夹实现

CentOS虚拟机和物理机共享文件夹实现过程。 一、 安装VMware Tools VMwareTools的安装脚本是要使用到perl的&#xff0c;而CentOS 6自身不带perl&#xff0c;所以需要自己安装。可以自己下载源代码编译&#xff0c;也可以直接用yum来安装。 yum install perl 2、虚拟机工具栏-…

[讨论]你的女朋友值多少钱?

你的女朋友值多少钱&#xff1f;一个简单的测试可能会告诉我们很多的东西。 女主持人气势咄咄的问一个男嘉宾&#xff0c;你为什么那么在乎钱&#xff0c;男嘉宾说&#xff1a;“钱能买到一切!” 现场的观众哗然了。 男嘉宾微笑的说&#xff1a;“我们做个测试吧。” 一个很简单…

庆祝天津.Net俱乐部成立,辛苦TerryLee了,感谢dudu!

终于等来了天津.Net俱乐部的成立&#xff0c;欢迎天津热心.Net的人士申请加入&#xff01; 转载于:https://www.cnblogs.com/anchky/archive/2006/03/21/354946.html

软件工程专业1

任何软件系统开发的共同本质&#xff1a; – 从现实空间的需求到计算机空间的软件代码之间的映射与转换&#xff1b; 软件工程本质&#xff1a; 用严格的规范和管理手段来缩小偏差&#xff0c;通过牺牲“时间”来提高“质量”。 软件工程的两个映射&#xff1a; 概念映射&#…

动态网页项目(Dynamic Web Project)2.5和3.0版本的差异

我们知道在2.5版本中都有web.xml&#xff0c;用来配置servlet&#xff1a; 但3.0版本却没有web.xml&#xff0c;那该怎么配置servlet呢&#xff1f; 解决的方法就是使用注解&#xff1a; 而且在注解中配置servlet非常方便&#xff01; 那如果想在3.0中也使用web.xml该怎么办…

New LINQ CTP!

FYI, we just released an updated community preview of our LINQ support for both VB and C#, entitled “Microsoft Visual Studio Code Name “Orcas” Language-Integrated Query, May 2006 Community Technology Preview.” Or you could just call it “the May CTP.”…

mybatis的一些基础问题

拿实体类中的属性 userPhone 来说&#xff1a; mapper 文件 转载于:https://www.cnblogs.com/py1994/p/7097808.html

(zt)Web 2.0奔路进行时

Web 2.0奔路进行时作者 黄昆Web2.0不是独立存在的&#xff0c;在2006年将会全面融入互联网&#xff0c;这种融入并不意味着Web2.0以及Web2.0所代表的创新浪潮的消退&#xff0c;反而将以这种充满活力的创新方式引发互联网产业格局的巨大变革。Web2.0&#xff0c;在奔跑。发展到…

each(callback)与each(object[,callback])的区别

each(callback)与each(object[,callback])的区别&#xff1a; 1. 调用对象不同&#xff0c;前者必须使用jQuery对象调用&#xff1b;后者只能使用$调用&#xff1b; 2. 遍历对象不同&#xff1a;前者遍历的是jQuery对象&#xff1b;后者还可以遍历数组等非jQuery对象。我们来看…

Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务

Microsoft .Net Remoting系列专题之二 一、远程对象的激活 在Remoting中有三种激活方式&#xff0c;一般的实现是通过RemotingServices类的静态方法来完成。工作过程事实上是将该远程对象注册到通道中。由于Remoting没有提供与之对应的Unregister方法来注销远程对象&#xff0…

luogu P2759 奇怪的函数 二分答案+数论

题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少&#xff1f; 输入输出格式 输入格式&#xff1a; 一个正整数 n 输出格式&#xff1a; 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1&#xff1a;11 输出样例#1&#xff1a;10 说明 n<2000000…

前端性能毫秒必争方案(一)HTTP请求

在讲http知识之前&#xff0c;有必要提及下网络七层协议OSI(Open System Interconnect)的缩写 犹如水浒里面的七星聚义&#xff0c;没这七星&#xff0c;就没有108将。(已经放置文章最后面) 2. 减少http请求次数原因在于 1、Http连接 RequestHeader 的开销 众所周知&#xff0c…

CodeSmith应用(一)

这个例子仅是一个简单的应用&#xff0c;在我翻译并学习完CodeSmith的英文帮助文档后&#xff0c;对CodeSmith有了一定的了解&#xff0c;开始着手编写一些CodeSmith应用模板&#xff0c;今天按照最早提到的例子自行编写了一个基于表的添加存储过程的生成模板。具体语法前面基础…

01_创建一个新的activityactivity配置清单文件

今天开始学四大组件。今天是学Activity&#xff0c;然后是广播接收者&#xff0c;然后是服务&#xff0c;然后是内容提供者。四大组件&#xff0c;咱们一天一个。Activity就是跟用户交互的界面&#xff0c;大部分的应用都不会只有这么一个界面。创建多个Activity&#xff0c;在…

Java 集合——List集合

Collection接口是集合的老祖宗&#xff0c;定义了接口的基本方法。 List是Collection接口的子接口&#xff0c;也是最常用的接口&#xff0c;此接口对Collection接口进行了大量的扩展&#xff0c;List集合里的元素是可以重复的。 List接口的主要实现类有ArrayList&#xff0c;和…

jQuery中的插件机制

我们在很多地方都用过插件&#xff0c;插件能让我们操作某个东西变得异常方便&#xff0c;jQuery也不例外&#xff0c;为了扩展jQuery库函数&#xff0c;jQuery提供了两种方式&#xff1a; jQuery.extend(object)&#xff1a;扩展jQuery对象本身&#xff0c;主要是用来扩展jQu…

ActiveRecordBase借助NHibernate的条件获取实体类对象

ActiveRecordBase.FindAll() 函数其中有一个这样的版本的参数ActiveRecordBase.FindAll(TargetType AsSystem.Type,Orders() AsNHibernate.Expression.Order,ParamArraycriterias() AsNHibernate.Expression.ICriteriion) 可以方便的使用NHibernate的条件查询&#xff0c;例如…

轻量级持久层V2版本代码与模板

首页列表上好像不能下载&#xff0c;要下载文件请进来下。 上篇帖《轻量级持久层的讨论》中大家踊跃的提出各种意见&#xff0c;让我得到不少灵感&#xff0c;这些新的想法将会应用到下一个版本的开发中&#xff0c;我先得试试可行性如何。这里先给出这一版本的代码和模板&…

最近用到的一些方法技巧

郁闷&#xff0c;msn上不去&#xff0c;没法干活。记上最近项目中用到的一些code snippet1.查询今天的记录select datediff(dd,ConvDateTime,getdate()),* from dbo.rbConversationMaster where datediff(dd,ConvDateTime,getdate())0 DataDiff Returns the number of date and…

MyBatis的使用

要了解MyBatis的使用&#xff0c;首先要了解MyBatis是因何而来的&#xff1f;为了和数据库进行交互&#xff0c;通常的做法是将SQL语句写在Java代码里&#xff0c;然后生成class文件&#xff0c;而我们知道class文件是无法修改的。假如后来我们只想改变一下SQL语句&#xff0c;…

iOS7系统iLEX RAT冬青鼠安装教程:无需刷机还原纯净越狱系统

全网科技 温馨提醒&#xff1a;iLEX RAT和Semi-Restore的作用都是让你的已越狱的设备恢复至越狱的初始状态。可是要注意无论你是用iLexRAT冬青鼠还是Semi-restore。对于还原来说都存在巨大的风险。非必要情况下&#xff0c;还是不要任意使用它们。*iLEX RAT冬青鼠安装教程&…

HDU 4832(DP+计数问题)

HDU 4832 Chess 思路&#xff1a;把行列的情况分别dp求出来&#xff0c;然后枚举行用几行。竖用几行&#xff0c;然后相乘累加起来就是答案 代码&#xff1a; #include <stdio.h> #include <string.h> #include <iostream> using namespace std;typedef long…

社会生活中常用的14条著名法则

一、 马太效应          八、 水桶定律 二、 手表定理          九、 蘑菇管理三、 不值得定律         十、 奥卡姆剃刀定律四、 彼得原理          十一、 二八定律五、 零和游戏原理        十二、 钱的问题六、 华盛顿合作…

Spring框架之(无参、有参)构造方法与setter方法的初始化

我们之前要创建对象时&#xff0c;都需要new一下&#xff0c;但使用了Spring后&#xff0c;就不需要再new了&#xff0c;可以直接使用类名调用了。这是因为Spring 已经为我们自动创建好了Java对象&#xff08;但需要在xml文件里进行一些配置&#xff09;。 举个例子看看吧&…

P1034 矩形覆盖

题目描述 在平面上有 n 个点&#xff08;n < 50&#xff09;&#xff0c;每个点用一对整数坐标表示。例如&#xff1a;当 n&#xff1d;4 时&#xff0c;4个点的坐标分另为&#xff1a;p1&#xff08;1&#xff0c;1&#xff09;&#xff0c;p2&#xff08;2&#xff0c;2&a…