程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 關於在winform下DataGrid分頁代碼

關於在winform下DataGrid分頁代碼

編輯:.NET實例教程

關於在winform下DataGrid分頁代碼



最近頭頭要我們用DataGrid顯示數據的時候一條一條的顯示,當點擊了某按鈕時,下條記錄就出現,也就是一次只顯示一條記錄,~於是我就想到了用DataGrid分頁,當然我們在開發中也遇到了很多問題,特別是細節上的~在這裡我要特別感謝我的朋友reficul和Oscar給了我不少幫助~
-------------------------代碼-----------------------------------
public int NowPage = 1,PageCount = 1,PageSize = 1;//先定義變量並初始化
private void button1_Click(object sender, System.EventArgs e)//上一頁
  {
   NowPage--;
   LoadData(sender,e);
  }
  private void button2_Click(object sender, System.EventArgs e)//下一頁
  {
   NowPage++;
   LoadData(sender,e);
  }
  private void LoadData(object sender,System.EventArgs e)
  {
   try
   {
    string conn = "server=.;user id=sa;passWord=;database=Northwind";//連接數據庫,我用的事例數據庫是SQL裡面的
    //設置數據庫連接
    SqlConnection SconnStr = new SqlConnection (conn);
    if(SconnStr.State.ToString()=="Closed")
    {
     SconnStr.Open ();
    }
    SqlCommand Countcmd = new SqlCommand ("select count(*) as co from Employees",SconnStr);//讀出總記錄數
    SqlDataReader Countdr = Countcmd.ExecuteReader();
    if(Countdr.Read())
    {
     PageCount = Int32.Parse (Countdr["co"].ToString ())/PageSize;//用總記錄數除於每頁顯示的記錄數=總頁數
     if(Int32.Parse (Countdr["co"].ToString ())%PageSize>0) //取模運算,
     {
      PageCount = PageCount +1;//超過一頁的顯示數按2頁算
     }
     if(PageCount<1)//不足一頁顯示數的按一頁算
     {
      PageCount=1;
     }
    }

$False$


    SconnStr.Close ();
    pageinfo.Text ="共"+PageCount+"頁\t 第"+NowPage+"頁";
    //設置操作數據庫命令
    if(NowPage>=PageCount)//如果當前的頁面值大於或等於總頁面數的話,那麼當前頁面為最後的頁面
    {
     NowPage= PageCount;
    }
    if(NowPage<=1)//如果當前的頁面值小於或等於一頁面的話,那麼當前頁面為第一頁
    {
     NowPage=1;
    }
    int start = (NowPage-1)*PageSize;//當前頁的開始記錄是前幾頁的總記錄數的最後一個記錄
    string command = "select * from Employees ";//填充數據,並顯示
    SqlDataAdapter sda = new SqlDataAdapter ( command,SconnStr);
    DataSet ds = new DataSet ();
    sda.Fill(ds,start,PageSize,"Employees");
    dataGrid1.DataSource = ds.Tables ["Employees"].DefaultVIEw ;
    dataGrid1.SetDataBinding(ds,"Employees");
   }
   catch(Exception err)
   {
    MessageBox.Show(err.Message.ToString());
   }
  }
  private void button3_Click(object sender, System.EventArgs e)//首頁
  {
       NowPage= 1;
         LoadData(sender,e);
  }
  private void button4_Click(object sender, System.EventArgs e)//尾頁
  {
         NowPage= PageCount;
         LoadData(sender,e);
  } 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved