ADO调用分页查询存储过程的实例讲解_实用技巧

下面小编就为大家分享一篇ado调用分页查询存储过程的实例讲解,具有很好的参考价值,希望对大家有所帮助让大家更好的使用ado进行分页。对ado感兴趣的一起跟随小编过来看看吧

一、分页存储过程

----------使用存储过程编写一个分页查询-----------------------set nocount off --关闭SqlServer消息--set nocount on --开启SqlServer消息gocreate proc usp_getMyStudentsDataByPage--输入参数@pagesize int=7,--每页记录条数@pageindex int=1,--当前要查看第几页的记录--输出参数@recordcount int output,--总的记录的条数@pagecount int output --总的页数asbegin--1.编写查询语句,把用户要的数据查询出来selectt.fid,t.fname,t.fage,t.fgender,t.fmath,t.fclassid,t.fbirthdayfrom (select *,rn=row_number() over(order by fid asc) from MyStudent) as twhere t.rn between (@pageindex-1)*@pagesize+1 and @pagesize*@pageindex--2.计算总的记录条数set @recordcount=(select count(*) from MyStudent)--3.计算总页数set @pagecount=ceiling(@recordcount*1.0/@pagesize)end --调用前定义输出参数declare @rc int,@pc intexec usp_getMyStudentsDataByPage @pagesize=7,@pageindex=4, @recordcount=@rc output,@pagecount=@pc outputprint @rcprint @pc

登录后复制

二、ADO调用存储过程

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace _02通过Ado.Net调用存储过程{ public partial class Form1 : Form {  public Form1()  {   InitializeComponent();  }  private int pageIndex = 1;//当前要查看的页码  private int pageSize = 7;//每页显示的记录条数  private int pageCount;//总页数  private int recordCount;//总条数  //窗体加载的时候显示第一页的数据  private void Form1_Load(object sender, EventArgs e)  {   LoadData();  }  private void LoadData()  {   //根据pageIndex来加载数据   string constr = "Data Source=steve-pc;Initial Catalog=itcast2014;Integrated Security=True";   #region 1   //using (SqlConnection conn = new SqlConnection(constr))   //{   // //将sql语句变成存储过程名称   // string sql = "usp_getMyStudentsDataByPage";   // using (SqlCommand cmd = new SqlCommand(sql, conn))   // {   //  //告诉SqlCommand对象,现在执行的存储过程不是SQL语句   //  cmd.CommandType = CommandType.StoredProcedure;   //  //增加参数(存储过程中有几个参数,这里就需要增加几个参数)   //  //@pagesize int=7,--每页记录条数   //  //@pageindex int=1,--当前要查看第几页的记录   //  //@recordcount int output,--总的记录的条数   //  //@pagecount int output --总的页数   //  SqlParameter[] pms = new SqlParameter[] {    //  new SqlParameter("@pagesize",SqlDbType.Int){Value =pageSize},   //  new SqlParameter("@pageindex",SqlDbType.Int){Value =pageIndex},   //  new SqlParameter("@recordcount",SqlDbType.Int){ Direction=ParameterDirection.Output},   //  new SqlParameter("@pagecount",SqlDbType.Int){Direction=ParameterDirection.Output}   //  };   //  cmd.Parameters.AddRange(pms);   //  //打开连接   //  conn.Open();   //  //执行   //using(SqlDataReader reader=cmd.ExecuteReader())   //{    //reader.Read()   //}   //pms[2].Value   // }   //}   #endregion   //DataAdapter方式   DataTable dt = new DataTable();   using (SqlDataAdapter adapter = new SqlDataAdapter("usp_getMyStudentsDataByPage", constr))   {    adapter.SelectCommand.CommandType = CommandType.StoredProcedure;    SqlParameter[] pms = new SqlParameter[] {      new SqlParameter("@pagesize",SqlDbType.Int){Value =pageSize},     new SqlParameter("@pageindex",SqlDbType.Int){Value =pageIndex},     new SqlParameter("@recordcount",SqlDbType.Int){ Direction=ParameterDirection.Output},     new SqlParameter("@pagecount",SqlDbType.Int){Direction=ParameterDirection.Output}     };    adapter.SelectCommand.Parameters.AddRange(pms);    adapter.Fill(dt);    //获取输出参数并且赋值给label    label1.Text = "总条数:" + pms[2].Value.ToString();    label2.Text = "总页数:" + pms[3].Value.ToString();    label3.Text = "当前页:" + pageIndex;    //数据绑定    this.dataGridView1.DataSource = dt;   }  }  //下一页  private void button2_Click(object sender, EventArgs e)  {   pageIndex++;   LoadData();  }  //上一页  private void button1_Click(object sender, EventArgs e)  {   pageIndex--;   LoadData();  } }}

登录后复制

效果图:

ADO调用分页查询存储过程的实例讲解_实用技巧

三、通过ado.net调用存储过程与调用带参数的SQL语句的区别。

1>把SQL语句变成了存储过程名称

2>设置SqlCommand对象的CommandType为CommandType.StoredProcedure

这步本质 就是在 存储过程名称前面加了个“ exec ”

3>根据存储过程的参数来设置SqlCommand对象的参数。

4>如果有输出参数需要设置输出参数的Direction属性为:Direction=ParameterDirection.Output

四、如果是通过调用Command对象的ExecuteReader()方法来执行的该存储过程,那么要想获取输出参数,必须得等到关闭reader对象后,才能获取输出参数。

以上这篇ADO调用分页查询存储过程的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHP中文网。

相关推荐:

解析ADO.NET对SQL Server数据库执行增删改查操作详解

ADO.NET实用实例介绍

ADO.NET实现对SQL Server数据库的操作教程

以上就是ADO调用分页查询存储过程的实例讲解_实用技巧的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2493101.html

(0)
上一篇 2025年3月5日 01:25:54
下一篇 2025年3月1日 14:17:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用 Go 框架进行安全哈希与存储

    通过 go 框架进行安全哈希:使用 bcrypt 生成安全哈希(密码哈希函数)。将哈希值存储在数据库中,如 postgresql。通过比较用户输入和存储的哈希值来验证身份。 使用 Go 框架进行安全哈希与存储 哈希算法 加密哈希函数(如 S…

    2025年3月4日
    200
  • 《路易吉洋楼 2 HD》来啦 三星 EVO Plus 存储卡带你玩转“新”鬼屋

    快乐的玩游戏,玩快乐的游戏,这应该是对任天堂 switch 游戏的最佳诠释,而任天堂的第一方游戏更是精品中的精品,尤其是马里奥系列,画风清新可爱、玩法简单,大人孩子都适合。今年 6 月末更是发售了全新的《路易吉洋馆 2 hd》,又可以体验奇…

    2025年3月2日 互联网
    200
  • SSD 从高效存储走到失效边缘 你需知道的几大警示信号

    追求高效稳定的存储体验,固态硬盘(ssd)无疑是理想之选,其卓越性能能长期为数据存取保驾护航。然而,ssd 的完美并非无缺,其核心部件 nand 闪存存在的写入与擦除周期限制,预示着其性能会随着时间推移而逐渐衰减,直至最终可能面临失效的风险…

    2025年3月2日 互联网
    200
  • 爱上旅行摄影后,这就是我的全套出行存储方案

    自从开始接触旅行摄影之后,首先让我感到焦虑的就是存储真的不够用,随随便便拍点东西硬盘就开始红温了,出门时只能一边拍一边删。所以后来仔细研究了一番,给自己的存储设备来了一次全面大升级。看到网上也有不少同学有类似的问题,但还在纠结到底要怎么升级…

    2025年3月2日 互联网
    200
  • Go语言中的数据对象存储

    随着互联网的快速发展,大数据时代已经到来,数据存储成为最重要的任务之一。各种编程语言的涌现也使得数据对象的存储变得更加灵活和高效。其中,go语言在数据对象存储方面具有优势。 一、Go语言数据对象 Go语言的数据对象有指针、数组、切片和Map…

    编程技术 2025年3月2日
    200
  • 2000元!我买了台绿联DXP4800:搭建NAS原来很简单

    摄影爱好者小雷的存储难题与绿联dxp4800 nas的解决方案 资深摄影爱好者小雷,因海量照片和视频存储需求日益增长,电脑存储空间(已升级至14T)捉襟见肘。升级电脑硬件成本过高,促使他选择搭建NAS。在调研后,他最终选择了口碑良好的绿联D…

    2025年3月2日 互联网
    200
  • Go 语言中的日志库有哪些?

    随着软件系统规模的不断扩大,日志机制越来越成为了系统开发中的重要组成部分,通过日志记录软件运行过程中的细节信息,开发人员可以更好地了解代码的运行状态,以便及时发现和解决问题。go 语言,作为一门强大而高效的编程语言,也提供了许多优秀的日志库…

    编程技术 2025年3月2日
    200
  • 深入研究Go语言的分布式数据库和数据存储

    深入研究Go语言的分布式数据库和数据存储 概述:随着互联网的日益发展,数据量不断增大,对于高效的数据存储和管理变得越来越重要。分布式数据库成为了大数据时代的核心技术之一。而Go语言作为一门性能卓越、简洁易用的编程语言,也在分布式数据库和数据…

    2025年3月1日
    200
  • Golang编译过程详解

    Golang编译过程详解 Golang(也称为Go)是一种由Google开发的编程语言,它具有简洁、高效、并发等特点,因此受到了广泛的关注和应用。在使用Golang进行编程时,编译是一个非常重要的环节,本文将详细介绍Golang的编译过程,…

    2025年3月1日
    200
  • python通过socket查询whois的方法

    本文实例讲述了python通过socket查询whois的方法。分享给大家供大家参考。具体实现方法如下: import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论