亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

創建有輸出參數的存儲過程并在c#中實現DataGridView分頁功能

2024-07-21 02:49:27
字體:
來源:轉載
供稿:網友
創建有輸出參數的存儲過程并在c#中實現DataGridView分頁功能

不足之處,歡迎指正!

創建有輸出參數的存儲過程

if exists(select * from sysobjects where name='usp_getPage1')drop PRocedure usp_getPage1gocreate procedure usp_getPage1--存儲過程名稱@count int output,--輸出參數@countIndex int=1,--參數帶默認值@countPage int=5--參數帶默認值as --一個sql語句。ROW_NUMBER ( ) OVER ()返回結果集分區內行的序列號,每個分區的第一行從 1 開始,這里給別名id。temp也是一個別名,是前面括號的數據select * from(select row_number()over(order by studentno)id,* from student)temp where id >(@countIndex-1)*@countPage and id<=@countIndex*@countPage--給輸出參數賦值set @count=ceiling((select count(*) from student)*1.0/@countPage) --ceiling四舍五入的節奏,乘以1.0呢,是因為int除以int還是得到int。浮點型除以整型得到浮點型go--執行存儲過程,有默認值的可以不給值,但是輸出參數需要聲明一個變量接收declare @num intexecute usp_getPage1 @count=@num outputprint @num 

  創建一個類,里面有一個靜態方法,等下會調用,引用命名空間

using System.Data;using System.Data.SqlClient;

 class SqlHelper    {        public static readonly string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True";        /// <summary>        /// 三個參數得到數據結果集        /// </summary>        /// <param name="commandText">sql命令,存儲過程名稱</param>        /// <param name="ctype">命令字符串類型</param>        /// <param name="ps">參數數據 params關鍵詞表示可為空</param>        /// <returns>返回DataTable的結果集</returns>        public static DataTable LoadData(string commandText,CommandType ctype,params SqlParameter[]ps)        {            SqlDataAdapter da = new SqlDataAdapter(commandText, connStr);            da.SelectCommand.Parameters.AddRange(ps);            da.SelectCommand.CommandType = ctype;            DataTable dt = new DataTable();            da.Fill(dt);            return dt;                }    }

  界面--一個DataGridView空間,兩個Button

聲明三個全局變量

       int pageIndex = 1;//頁碼        int pageCount = 5; //每一頁顯示多少個數據        int count = 0;//接收輸出參數的

  

private void Form1_Load(object sender, EventArgs e)界面初始之后的事件

SqlParameter p=new SqlParameter("@count",SqlDbType.Int);//@count 輸出參數,和存儲過程必須同名。聲明類型
p.Direction = ParameterDirection.Output; //告訴服務器的參數輸出方向//調用方法靜態 DataTable dt = SqlHelper.LoadData("usp_getPage1", CommandType.StoredProcedure, p); dgvData.DataSource = dt;//綁定數據 this.count = (int)p.Value;//記錄第幾頁

  在上一頁按鈕寫的事件

private void btnPer_Click(object sender, EventArgs e)        {   //當頁碼為1的時候將return            if (pageIndex==1)            {                MessageBox.Show("已經是第一頁了");                return;             }            pageIndex--;//點擊上一次頁碼減去1            //聲明參數數組,參數必須和存儲過程聲明的變量名稱一致            SqlParameter []ps={new SqlParameter("@countIndex",pageIndex),                              new SqlParameter("@countPage",pageCount),                              new SqlParameter("@count",SqlDbType.Int)                            };            //設置輸出參數的方向            ps[2].Direction = ParameterDirection.Output;            DataTable dt = SqlHelper.LoadData("usp_getPage1", CommandType.StoredProcedure, ps);//CommandType.StoredProcedure 告訴服務器這是執行一個存儲過程不是sql語句
            dgvData.DataSource = dt;//綁定數據            this.count = (int)ps[2].Value;//記錄第幾頁 }

  然后在下一頁按鈕的事件代碼和上一頁是差不多的只是變量pageIndex是pageIndex++代碼如下:

   private void btnNext_Click(object sender, EventArgs e)        {            if (pageIndex==this.count)//不同處            {                MessageBox.Show("已經是最后一頁了");                return;            }            pageIndex++;//點擊下一次頁碼加1--不同處            //聲明參數數組            SqlParameter[] ps ={new SqlParameter("@countIndex",pageIndex),                              new SqlParameter("@countPage",pageCount),                              new SqlParameter("@count",SqlDbType.Int)                            };            //設置輸出參數的方向            ps[2].Direction = ParameterDirection.Output;            DataTable dt = SqlHelper.LoadData("usp_getPage1", CommandType.StoredProcedure, ps);            dgvData.DataSource = dt;//綁定數據            this.count = (int)ps[2].Value;//每一次都要記錄輸出的值        }

  

總結:1.存儲過程的正確創建很重要

2.參數的名稱一定要和存儲過程的變量名稱要一致

3.輸出參數一定要聲明,同時設置他的方向。

4.CommandType.StoredProcedure 的設置


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
51ⅴ精品国产91久久久久久| 久久久亚洲国产天美传媒修理工| 成人乱人伦精品视频在线观看| 国产精品久在线观看| 成人黄色av播放免费| 国内精品中文字幕| 456国产精品| 色中色综合影院手机版在线观看| 国产91精品不卡视频| 欧美亚洲第一页| 欧美亚洲一级片| 精品欧美一区二区三区| 91成人精品网站| 国产精品久久精品| 国产精品久久久久久久久免费| 欧美成人一区在线| 欧美国产日韩中文字幕在线| 91国内免费在线视频| 亲子乱一区二区三区电影| 日韩一区av在线| 国产精品网站视频| 亚洲a在线观看| 美女少妇精品视频| 91av在线看| 国内精品久久久久影院优| 亚洲无限乱码一二三四麻| 狠狠操狠狠色综合网| 国产精品一区久久| 国精产品一区一区三区有限在线| 国产欧美精品xxxx另类| 伊人久久五月天| 国产精品网红直播| 亚洲中国色老太| 色老头一区二区三区| 国产精品福利在线观看| 欧美日韩免费观看中文| 亚洲一区亚洲二区亚洲三区| 九九热精品视频在线播放| 日韩av中文在线| 亚洲精品丝袜日韩| 亚洲午夜性刺激影院| 亚洲精品不卡在线| 久久久电影免费观看完整版| 91精品国产色综合久久不卡98| 欧美老妇交乱视频| 午夜精品久久久久久久99热| 国产精品女主播视频| 亚洲男人天天操| 亚洲精品午夜精品| 蜜月aⅴ免费一区二区三区| 日本不卡免费高清视频| 国产精品欧美日韩| 一区二区三区天堂av| 精品免费在线视频| 国产不卡一区二区在线播放| 欧美又大又粗又长| 日韩av电影免费观看高清| 性色av香蕉一区二区| xxxxx91麻豆| 欧美久久久精品| 欧美激情一级精品国产| 国产精品美女免费看| 亚洲人成网7777777国产| 欧美一级视频免费在线观看| 亚洲国产成人精品久久久国产成人一区| 欧美精品在线免费| 欧美性猛交xxxx| 久久精品91久久香蕉加勒比| 青草成人免费视频| 九色成人免费视频| 日韩性xxxx爱| 日韩在线国产精品| 日韩欧美中文免费| 欧美成人第一页| 俺去亚洲欧洲欧美日韩| 久久香蕉国产线看观看网| 人妖精品videosex性欧美| 性色av一区二区三区在线观看| 欧美精品久久久久久久久久| 亚洲视频在线观看| 欧美性猛交99久久久久99按摩| 国产精品视频yy9099| 午夜精品美女自拍福到在线| 国产91精品青草社区| 777国产偷窥盗摄精品视频| 日韩av手机在线看| 日本成熟性欧美| 国产日韩欧美视频在线| 久久精品久久久久久国产 免费| 国产美女91呻吟求| 自拍亚洲一区欧美另类| 夜夜狂射影院欧美极品| 欧美性猛交xxxx乱大交3| 色哟哟亚洲精品一区二区| 亚洲人成绝费网站色www| 亚洲高清久久久久久| 欧美性资源免费| 中文字幕一区二区三区电影| 精品久久久91| 欧美黑人视频一区| 亚洲а∨天堂久久精品喷水| 欧美肥婆姓交大片| 亚洲欧美日韩综合| 亚洲成人三级在线| 欧美日韩一二三四五区| 1769国产精品| 色狠狠av一区二区三区香蕉蜜桃| 久久久中精品2020中文| 最好看的2019的中文字幕视频| 久久久久久噜噜噜久久久精品| 欧洲中文字幕国产精品| 日韩欧美视频一区二区三区| 亚洲国产精品va在线看黑人| 91亚洲va在线va天堂va国| 国产综合视频在线观看| 成人精品aaaa网站| 81精品国产乱码久久久久久| 欧美国产日韩二区| 91av视频在线观看| 欧美自拍视频在线| 亚洲娇小xxxx欧美娇小| 8x拔播拔播x8国产精品| 亚洲国产天堂久久综合| 亚洲国产欧美一区二区三区久久| 亚洲欧美日韩另类| 91av在线看| 日韩综合中文字幕| 97精品久久久中文字幕免费| 在线播放国产一区二区三区| 日韩av在线免费观看一区| 日韩中文字幕视频| 国产一区二区三区四区福利| 一区二区三区动漫| 亚洲高清久久网| 亚洲网在线观看| 久久久久999| 精品日本高清在线播放| 国产精品人成电影在线观看| 国产精品自产拍在线观看中文| 韩国三级电影久久久久久| 欧美性猛交xxxx免费看久久久| 国产成人精品一区二区在线| 国产精品成人观看视频国产奇米| 色综合伊人色综合网站| 91视频国产高清| 亚洲精品久久久久久久久| 国产精品入口夜色视频大尺度| 久久久人成影片一区二区三区| 国产在线播放不卡| 亚洲精品国精品久久99热| 欧美老女人bb| 亚洲色图18p| 国产91精品不卡视频| www.亚洲男人天堂| 在线观看国产成人av片| 亚洲丝袜av一区| 久久久久久亚洲精品不卡| 亚洲一区二区三| 久久99国产综合精品女同| 国产精品久久久久秋霞鲁丝| 国产精品亚洲精品| 一本色道久久综合亚洲精品小说| 91香蕉嫩草神马影院在线观看| 精品久久久久人成|