手机版

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

时间:2021-09-02 来源:互联网 编辑:宝哥软件园 浏览:

一、分页存储过程

-使用存储过程编写一个分页查询-不设置计数-关闭SqlServer消息-不设置计数-开启SqlServer消息转到创建过程USP _ GetMystudentsdatabage-输入参数@pagesize int=7,-每页记录条数@pageindex int=1,-当前要查看第几页的记录-输出参数@recordcount int输出,-总的记录的条数@pagecount int输出-总的页数asbegin - 1 .编写查询语句,把用户要的数据查询出来selectt.fid,t.fname,t.fage,t.fgender,t.fmath,t.fclassid,t.fbirthdayfrom (select *,rn=row _ number())over(按fid asc排序)来自MyStudent)作为twhere t.rn介于(@pageindex-1)*@pagesize 1和@pagesize*@pageindex - 2之间。计算总的记录条数设置@recordcount=(从我的学习中选择计数(*)-3 .计算总页数set @ pagecount=天花板(@记录计数* 1.0/@页面大小)end-调用前定义输出参数声明@rc int,@ PC intexec USP _ getmystudentsdatabaypage @ page size=7,@pageindex=4,@[emailprotected]输出、@[电子邮件保护]输出打印@ RC打印@ PC

二、ADO调用存储过程

使用系统;使用系统。集合。通用;使用系统组件模型.使用系统。数据;使用系统。绘图;使用系统Linq .使用系统。文字;使用系统窗户。窗体;使用系统数据。SqlClient命名空间_02通过Ado .网调用存储过程{公共分部类Form 1 : Form { public Form 1(){ InitializeComponent();}私有int页索引=1;//当前要查看的页码私有int page SiZe=7;//每页显示的记录条数private int pageCount//总页数private int recordCount//总条数//窗体加载的时候显示第一页的数据私有空表单1_Load(对象发送方,事件参数e){ LoAdDATa();} private void LoadData() { //根据页面索引来加载数据字符串构造='数据源=史蒂夫-个人电脑;初始目录=itcast2014集成安全性=真;#区域1//使用(SqlConnection conn=new SqlConnection(const))/{//////将结构化查询语言语句变成存储过程名称//字符串SQL=' USP _ getmystudentsdatabage//使用(SQL命令cmd=新SqL命令(SqL,conn))/{//////告诉SqlCommand对象,现在执行的存储过程不是结构化查询语言语句//cmd .命令类型=命令类型StoredProcedure////增加参数(存储过程中有几个参数,这里就需要增加几个参数)////@pagesize int=7,-每页记录条数////@pageindex int=1,-当前要查看第几页的记录////@recordcount int输出,-总的记录的条数////@pagecount int输出-总的页数//SqlParameter[]PMS=new SqlParameter[]{//new SqlParameter(' @ page size ',SqlDbType .Int){Value=pageSize},//新的SqlParameter('@pageindex ',SqlDbType .Int){Value=pageIndex},//新的SqlParameter(' @记录计数',SqlDbType .int){方向=参数方向.输出},//新的SqlParameter('@pagecount ',SqlDbType .int){方向=参数方向.output }//};//cmd .参数AddRange(PMS);////打开连接//conn . Open();////执行//使用(SqlDataReader reader=cmd .ExecuteReader()) //{ //reader .Read() //} //pms[2]。value//}//} # end region//DataAdapter方式DataTable dt=new DataTable();正在使用(SqLDatadapter适配器=新的SqLDatadapter(' USP _ getMystudentsdatabage ',const)){适配器.选择命令。命令类型=命令类型storedproceedresqlparameter[]PMS=new SqlParameter[]{ new SqlParameter(' @ page size ',SqlDbType .Int){Value=pageSize},新的SqlParameter('@pageindex ',SqlDbType .Int){Value=pageIndex},新的SqlParameter('@recordcount ',SqlDbType .int){方向=参数方向.输出},新的SqlParameter('@pagecount ',SqlDbType .int){方向=参数方向.输出} };适配器。选择命令参数添加范围;适配器。填充(dt);//获取输出参数并且赋值给标签标签1。文本='总条数:' PMS[2]。价值。ToString();标签2。文本='总页数:' PMS[3]。价值。ToString();标签3。文本='当前页:' pageIndex//数据绑定这个。DataGridView 1。数据源=dt} } //下一页私有作废按钮2 _点击(对象发送者,EventArgs e){ page index;load DATa();} //上一页私有作废按钮1 _点击(对象发送者,EventArgs e){ page index-;load DATa();} }}效果图:

三、通过ado.net调用存储过程与调用带参数的结构化查询语言语句的区别。

一把结构化查询语言语句变成了存储过程名称

2设置SqlCommand对象的命令类型为命令类型存储过程

这步本质就是在存储过程名称前面加了个"执行"

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

四如果有输出参数需要设置输出参数的方向属性为:方向=参数方向。输出

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

上面ADO调用分页查询存储过程的例子解释了边肖分享的所有内容,希望能给大家一个参考和支持。

版权声明:ADO调用分页查询存储过程的实例讲解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。