使用DbHelperSQL调用存储过程的方法

2023-11-18

下面代码是个调用存储过程的例子,对于学习怎么使用DbHelperSQL调用存储过程很有帮助.

/// <summary>
/// 获得数据集
/// </summary>
/// <param name="tblName">表名</param>
/// <param name="RetColumns">需要返回的列,默认为全部 </param>
/// <param name="Orderfld">排序字段名</param>
/// <param name="PageSize">页尺寸</param>
/// <param name="PageIndex">页码 </param>
/// <param name="IsCount">返回记录总数, 非 0 值则返回 </param>
/// <param name="OrderType">设置排序类型, 非 asc 值则降序 </param>
/// <param name="strWhere">查询条件 (注意: 不要加 where) </param>
/// <returns>数据集</returns>
public static SqlDataReader Get_DataReader(string tblName,string RetColumns,string Orderfld,int PageSize,int PageIndex,int IsCount,string OrderType,string strWhere)
{
IDataParameter[] parameters = new SqlParameter[8];
parameters[0]=new SqlParameter("@tblName", SqlDbType.NVarChar,255);//表名
parameters[1]=new SqlParameter("@RetColumns", SqlDbType.NVarChar,1000);//需要返回的列,默认为全部
parameters[2]=new SqlParameter("@Orderfld", SqlDbType.NVarChar,255);//排序字段名
parameters[3]=new SqlParameter("@PageSize", SqlDbType.Int);//页尺寸
parameters[4]=new SqlParameter("@PageIndex", SqlDbType.Int);//页码
parameters[5]=new SqlParameter("@IsCount", SqlDbType.Bit);//返回记录总数, 非 0 值则返回
parameters[6]=new SqlParameter("@OrderType", SqlDbType.NVarChar,50);//设置排序类型, 非 asc 值则降序
parameters[7]=new SqlParameter("@strWhere", SqlDbType.NVarChar,1000);//查询条件 (注意: 不要加 where)

parameters[0].Value=tblName;
parameters[1].Value=RetColumns;
parameters[2].Value=Orderfld;
parameters[3].Value=PageSize;
parameters[4].Value=PageIndex;
parameters[5].Value=IsCount;
parameters[6].Value=OrderType;
parameters[7].Value=strWhere;
try
{
return DbHelperSQL.RunProcedure("proc_y_GetRecordFromPage",parameters);
}
catch
{
return null;
}
}

/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
SqlConnection connection = new SqlConnection(connectionString);
SqlDataReader returnReader;
connection.Open();
SqlCommand command = BuildQueryCommand( connection,storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure;
returnReader = command.ExecuteReader();
return returnReader;
}
/// <summary>
/// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
/// </summary>
/// <param name="connection">数据库连接</param>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <returns>SqlCommand</returns>
private static SqlCommand BuildQueryCommand(SqlConnection connection,string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand( storedProcName, connection );
command.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
return command;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用DbHelperSQL调用存储过程的方法 的相关文章

  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 如何等待远程 .NET 调试器连接

    今天我遇到了一个问题 我需要远程调试程序 该程序是从另一个系统启动的 所以我真的没有机会在命令行上与它交互 不过我可以很容易地改变它的来源 我需要做的是让程序正常启动 然后等待我用调试器附加到它 我想不出一个让我快乐的方法 我确实发现了这个
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 抛出并保留堆栈跟踪不符合代码分析所描述的预期

    进行代码分析给了我项目 CA2200 CA2200 重新抛出以保留堆栈详细信息 func 重新抛出捕获的异常并将其显式指定为参数 请改用不带参数的 throw 以保留最初引发异常的堆栈位置 我已经实现了该建议 但无论如何我似乎都得到了相同的
  • 如何拦截 Boo 中的方法调用?

    红宝石有method missing Python有getattr Boo 是否提供了一些可以用来拦截方法调用的东西 是的 布有IQuackFu http docs codehaus org pages viewpage action pa
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 为什么 C# 不支持类构造函数中的隐式泛型类型?

    如果编译器可以推断出泛型类型参数 C 并不要求您指定它 例如 List
  • 使一个对象只能被同一程序集中的另一个对象访问?

    每个业务对象都有一个包含 sql 调用的匹配对象 我想限制这些 sql 对象 使其只能由匹配的业务对象使用 如何才能实现这一目标 Update 格雷格提出了关于可测试性的观点 由于 SqlObjects 将包含非常特定于业务流程的 sql
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • 以编程方式设置 maxRequestLength

    有一个配置值叫做maxRequestLength 在配置文件中 它看起来像这样
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • MySQL与常见面试题

    目录 事务 概述 ACID AUTOCOMMIT 总结 并发一致性问题 丢失修改 读脏数据 不可重复读 幻读 原因和解决方法 隔离级别 未提交读 READ UNCOMMITTED 提交读 READ COMMITTED 可重复读 REPEAT
  • 端口查看(非原创)

    端口查看 非原创 1 Netstat命令用法 命令格式 Netstat a e n o s an a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口 e 表示显示以太网发送和接收的字节数 数据包数等 n 表示只以数字形式显示
  • c# .net mvc的IHttpHandler奇妙之旅。.net的生命周期和管道你听说过吗?你可以利用他处理业务如:跳转业务页面,文件请求的安全过滤,等等,还有许多神秘业务等着你去发现

    源码下载 c net mvc图片文件请求安全过滤 图片防盗链 https download csdn net download cplvfx 88206428 c net mvc的IHttpHandler奇妙之旅 net的生命周期和管道你听
  • TensorRT部署YOLOv5(02)-环境介绍

    本文对TensorRT部署YOLOv5模型的整体环境配置及软件包进行介绍 实验环境主要从主机和JestonNano两方面进行介绍 在主机端完成模型训练并转换为onnx中间模型表示 在JestonNano进行onnx模型转换为TensorRT
  • cocos2dx 3.0 新建工程

    打开终端 转到cocos2d 3 0的这个目录下tools cocos2d console bin cocos py cocos py 运行命令 会显示该命令的帮助 根据帮助提示进行操作 有以下几个命令可用 compile Compiles
  • 游戏开发unity编译和调试系列:Unsafe code may only appear if compiling with /unsafe

    问题 Unsafe code may only appear if compiling with unsafe Enable Allow unsafe code in Player Settings to fix this error 解决
  • MySQL中的锁机制和MVCC

    MySQL中的锁和MVCC 概述 InnoDB的MVCC MVCC锁相关 SQL语句的加锁分析 RR隔离级别是如何解决幻读的 死锁 模拟死锁 在学习MySQL中的锁机制相关时搜集了几篇写得非常不错的博客 这里就不再花时间详细介绍 本篇仅做总
  • 批量异步更新策略及 nextTick 原理?

    在Vue中 当需要对多个响应式数据进行异步更新时 可以使用 批量异步更新策略 Vue在更新组件状态时 会将所有的异步更新合并成一个批量更新 从而避免不必要的重复渲染和提高性能 Vue中的异步更新策略是基于 事件循环 Event Loop 的
  • numpy 索引和切片

    目录 1 索引元素 2 切片 省略参数写法 3 应用举例 4 多维数组 二维数组获取一行 二维数组获取一列 5 多维数组的切片 如果要获取 第一行的第四和第五个元素 如果得到数组的最后两行和最后两列 如果得到数组的第三列 如果取出第3 5行
  • (局部特征)HOG+SVM,LBP,Haar

    在利用多幅二维图像进行三维重建 恢复场景三维结构的应用中 其基本出发点是要有一个可靠的图像对应点集合 而自动地建立图像之间 点与点之间的可靠对应关系通常都依赖于一个优秀的局部图像特征描述子 在物体识别中 目前非常流行以及切实可行的方法之一是
  • 记录QT4键盘无法置顶问题

    键盘类设置 QWidget setWindowFlags windowFlags Qt WindowStaysOnTopHint Qt FramelessWindowHint Qt X11BypassWindowManagerHint 莫名
  • bash脚本,自动输入sudo的密码

    解决方法 echo 管道 开始使用 echo admin sudo service tomcat7 stop 始终提示输入密码 后来查看了下sudo命令的使用 man sudo 发现有如下的解释 S The S stdin option c
  • go并发模型GPM

    线程模型的三种实现方式 用户级线程 M 1对应关系 多个用户态线程对应着一个内核线程 用户态线程的创建 终止 切换 同步等线程工作必须由自身来完成 内核级线程 1 1对应关系 直接调用操作系统的内核线程 所有线程的创建 终止 切换 同步等操
  • mysql数据库丢库记

    2021 1 29 记 环境 Windows10 mysql5 6 Navicat12 原因 电脑突然关机 启动后通过Navicat连接发现少了一个库 让人无比迷茫 为啥会出现丢库现象 解决方案 无比庆幸的是在几个小时之前 我对丢失的库做过
  • 赋值运算符的错误使用举例

    和 运算符的错误使用 运算符在C语言中为赋值运算符 运算符为检查符号两边的值是否是相等的操作 当某些程序的本意是比较运算符的时候 可能会无疑写成了赋值运算符 比如下面的程序 本意是要检查x是否等于y 但是实际上是把y的值的赋值给了x 然后去
  • android studio 编译时出现 Build completed with 1 failures错误

    okhttp keep class okhttp3 keep interface okhttp3 dontwarn okhttp3 出现 Build completed with 1 failures 这个问题上面只是导致这个错误的一种 出
  • 嵌入式linux基础学习全套精品视频教程

    嵌入式linux基础学习全套精品视频教程 在给大家分享教程之前 首先给大家简要的介绍一下嵌入式linux 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改 使之能在嵌入式计算机系统上运行的一种操作系统 嵌入式linux既继承了
  • nginx中自动在二级目录后加斜杠

    有时候在Nginx的伪静态中 二级目录无法自动加斜杠 导致目录无法打开 可以加 optimize server names off server name in redirect off 但是又时候可能不通用 所以在虚拟主机中加入一段万能的
  • kuangbin的模板

    直接链接 间接链接
  • 使用DbHelperSQL调用存储过程的方法

    下面代码是个调用存储过程的例子 对于学习怎么使用DbHelperSQL调用存储过程很有帮助