91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用ADO怎么調用分頁查詢的存儲過程

發布時間:2021-03-10 14:52:37 來源:億速云 閱讀:139 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用ADO怎么調用分頁查詢的存儲過程,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、分頁存儲過程

----------使用存儲過程編寫一個分頁查詢-----------------------
set nocount off --關閉SqlServer消息
--set nocount on --開啟SqlServer消息
go
create proc usp_getMyStudentsDataByPage
--輸入參數
@pagesize int=7,--每頁記錄條數
@pageindex int=1,--當前要查看第幾頁的記錄
--輸出參數
@recordcount int output,--總的記錄的條數
@pagecount int output --總的頁數
as
begin
--1.編寫查詢語句,把用戶要的數據查詢出來
select
t.fid,
t.fname,
t.fage,
t.fgender,
t.fmath,
t.fclassid,
t.fbirthday
from (select *,rn=row_number() over(order by fid asc) from MyStudent) as t
where 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 int
exec usp_getMyStudentsDataByPage @pagesize=7,@pageindex=4, @recordcount=@rc output,@pagecount=@pc output
print @rc
print @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怎么調用分頁查詢的存儲過程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ado
AI

衡阳市| 汾阳市| 柳河县| 额尔古纳市| 英山县| 马尔康县| 瑞丽市| 武乡县| 搜索| 绥德县| 灵川县| 杭锦后旗| 华亭县| 湖北省| 门头沟区| 水富县| 安溪县| 岐山县| 佳木斯市| 东城区| 汶上县| 台江县| 阿鲁科尔沁旗| 乌什县| 彰武县| 上饶县| 兴山县| 江安县| 台江县| 通城县| 大余县| 杭锦后旗| 永济市| 鹿泉市| 加查县| 贵阳市| 滕州市| 调兵山市| 西吉县| 中方县| 新乐市|