SQLHelper.cs 通用类


///

/// 执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
/// 使用参数数组提供参数
///
///
/// 使用示例:
/// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, “PublishOrders”, new SqlParameter(“@prodid”, 24));
///
/// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)
/// 存储过程的名字或者 T-SQL 语句
/// 以数组形式提供SqlCommand命令中用到的参数列表
/// 返回一个包含结果的SqlDataReader
public static SqlDataReader ExecuteReader( CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString);

// 在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
//CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。
//关闭数据库连接,并通过throw再次引发捕捉到的异常。
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}
///
/// 为执行命令准备参数
///
/// SqlCommand 命令
/// 已经存在的数据库连接
/// 数据库事物处理
/// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)
/// Command text,T-SQL语句 例如 Select * from Products
/// 返回带参数的命令
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{

//判断数据库连接状态
if (conn.State != ConnectionState.Open)
conn.Open();

cmd.Connection = conn;
cmd.CommandText = cmdText;

//判断是否需要事物处理
if (trans != null)
cmd.Transaction = trans;

cmd.CommandType = cmdType;

if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}


调用方法:

SqlDataReader sqlData = SQLHelper.ExecuteReader(CommandType.StoredProcedure, “XXXXXXXXXXXX”, sqlParameters);
while (sqlData.Read())
{
objProcProduct.ReturnCode = Convert.ToInt32(sqlData[0].ToString());
objProcProduct.ReturnMsg = sqlData[1].ToString();
}

SQLHelper通用类执行一条返回结果集的SqlCommand命令 使用方法相关推荐

  1. C#操作sql通用类 SQLHelper

    Codeusing System; using System.Data; using System.Configuration; using System.Web; using System.Web. ...

  2. C#操作SQL Server通用类

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  3. SQLHelper帮助类

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  4. 如何执行一条汇编指令

    在电脑中执行一条指令主要又三个步骤: (1)在指定地址上写入一条汇编指令 (2)使cs寄存器与ip寄存器指向指令所在的地址 (3)开始执行 (1)在指定地址写入一条汇编指令: 终端上常用的命令有:R命 ...

  5. linux打开python3_Python3 执行Linux Bash命令的方法

    和之前C++执行Linux Bash命令的方法 一样,Python依然支持system调用和popen()函数来执行linux bash命令. 方法一:system调用 #仅仅在一个子终端运行系统命令 ...

  6. Java调用linux指令工具类,直接执行cmd,执行grep指令返回结果,执行sed追加指令,hdfs下载指令,获取文件行数

    Java调用linux指令工具类,直接执行cmd,执行grep指令返回结果,执行sed追加指令,hdfs下载指令,获取文件行数 问题背景 LinuxUtils工具类 Lyric:梦想挟带眼泪 问题背景 ...

  7. CMD-C#调用CMD执行多条命令并返回结果

    有时候需要执行多条dos命令才能完成一个功能,当然我们可以创建一个bat可执行文件,把命令都写入文件,再用C#去执行可执行文件就可以了. 本篇主要是C#调用cmd来执行命令,就是使用一个可变参数: 案 ...

  8. Qt之QProcess 连续执行多条指令并获取指令返回内容

    简述 system可以连续执行多条指令,只需要使用分号":"分开指令就行,但是system只能返回int类型结果,得不到想要的指令返回内容,且还会阻塞主线程(除非在命令后面加上 & ...

  9. 中文的SqlHelper.cs类

    //这是在网上找的中文解释的SqlHelper using  System; using  System.Configuration; using  System.Data; using  Syste ...

最新文章

  1. 3d卷积神经网络_HSNets:使用卷积神经网络从2D轮廓预测3D人体模型
  2. apollo 配置中心_分布式配置中心之Apollo
  3. when is oPropagatedProperties of detail view being generated
  4. Linux:客户端的实现
  5. 城市遥感动态监测管理系统
  6. gbase迁移mysql_基于datax实现从gbase到mysql的数据迁移--时间字段篇
  7. 自定义生成器函数模拟Python内置函数filter()
  8. 移动Web开发与适配笔记
  9. 聚合(Aggregation)和组合(Composition)的区别
  10. 学前端的记录帖html+css b站千峰19版
  11. php李炎恢笔记,李炎恢的PHP绘图技术读书笔记五
  12. 微信小程序——仿写京东购物商城带源码
  13. gpt和mbr的区别
  14. 云栖科技评论第56期:莫忧AI泡沫 相信AI兴邦
  15. 用python爬取微博评论对鹿晗、关晓彤微博进行情感分析
  16. Unity 水墨风格Shader
  17. k短路(HDU6705)
  18. 华为p30怎么删掉云相册的照片_华为手机云空间满了,教你如何清理
  19. C++实现大整数乘法
  20. 学JAVA编程用什么电脑配置_学习编程,你真正需要的是什么样配置的电脑?

热门文章

  1. php creatobject,创建 GUID CreateObject(Scriptlet.TypeLib) 拒绝的权限
  2. 数码相机镜头卡死拆机修理记录
  3. Java word 转 pdf jacob方法
  4. 被面试:sharepoint 是什么?优势是什么?
  5. chartxy 柱状图_ChartControl 折线图 柱状图
  6. ubuntu 16.04 LTS 笔记本外接显示器,关闭笔记本显示器的方法
  7. 服务器虚拟化知识点的总结以及了解虚拟化
  8. 使用淘宝镜像实现npm install 全局安装
  9. 基于Java的五子棋游戏的设计与实现
  10. npm库v9介绍:对种子或磁力链截屏