//導入命名空間部分省略sql
DBClass.DBExecute dbexecute = new DBExecute(); 數據庫
string connectionString = @"Data Source=ServerName;Database=DatabaseName;integrated security=true";this
#region 初始化分頁顯示的參數
static int rowsall = 0;//總行數
static int pageall = 0;//總頁數
static int page = 0;//第幾頁
static int count = 20;//返回20行
static int start = 0;//從第start行開始返回
#endregion 對象
#region 創建數據庫連接
/// <summary>
/// 創建數據庫鏈接
/// </summary>
/// <returns>返回SqlConnection對象</returns>
public SqlConnection getcon()
{
SqlConnection myCon = new SqlConnection(connectionString);
return myCon;
} blog
#region 設置DataGridView分頁顯示的參數,和初次綁定
/// <summary>
/// 設置DataGridView分頁顯示的參數,和初次綁定
/// </summary>
/// <param name="sqlstr">設置查詢的sql語句</param>
/// <param name="table">設置返回綁定的DataSet中的表的名稱</param>
/// <param name="dgv">要綁定的DataGridView</param>
public void upPage(string sqlstr,string table,DataGridView dgv)
{
rowsall = dbexecute.getds(sqlstr, table).Tables[table].Rows.Count;//總行數
if (rowsall == 0)
{
//若是沒有數據則將第一頁、上一頁、下一頁、最後一頁設置爲不可用;並設置其餘參數
toolStripButton2.Enabled = false;
toolStripButton3.Enabled = false;
toolStripButton4.Enabled = false;
toolStripButton5.Enabled = false;
page = 0;
pageall = 0;
rowsall = 0;
dgv.DataSource = null;
tslRowsall.Text = rowsall.ToString();
tslPageAll.Text = pageall.ToString();
tslPage.Text = page.ToString();
return;
}
if (rowsall > 0)//判斷是否有內容
{
page = 1;//若是有內容,設置爲第一頁
start = 0;
}
int yushu = rowsall % count;//是否存在餘行
if (yushu == 0)//不存在餘行時設置總頁數
{
if (rowsall > 0 && rowsall <= count)
{
pageall = 1;
}
else
{
pageall = rowsall / count;
}
}
else//存在餘行時設置總頁數
{
pageall = rowsall / count + 1;
}
{//設置顯示數據,
tslRowsall.Text = rowsall.ToString();
tslPageAll.Text = pageall.ToString();
tslPage.Text = page.ToString();
if (pageall > 0)
{ //設置跳轉到第幾頁
tscbPage.Items.Clear();
for (int i = 1; i <= pageall; i++)
tscbPage.Items.Add(i);
}
}
selectsql = sqlstr; //設置sql語句
dgv.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView ip
}
#endregionget
#region
/// <summary>
/// 分頁返回DataTable
/// </summary>
/// <param name="sql">查詢的sql語句</param>
/// <param name="i">從第i行開始返回</param>
/// <param name="j">共返回j行記錄</param>
/// <param name="tablename">返回DataSet中的代表</param>
/// <returns>返回DataTable</returns>
public DataTable gettb(string sql, int start, int count, string tablename)
{
SqlConnection con = this.getcon();
DataSet myds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);string
sda.Fill(myds, start, count, tablename);
return myds.Tables[tablename];
}
#endregion it
/// 第一頁
private void toolStripButton2_Click(object sender, EventArgs e)
{
if (pageall > 1)
{
start = 0;
page = 1;
tslPage.Text = page.ToString();
this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
}
} io
// 上一頁
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (page >1)
{
page--;
start -= 20;
tslPage.Text = page.ToString();
this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘; //綁定DataGridView
}
}
/// 下一頁
private void toolStripButton4_Click(object sender, EventArgs e)
{
if (page < pageall)
{
page++;
start += 20;
tslPage.Text = page.ToString();
this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
}
}
//最後一頁
private void toolStripButton5_Click(object sender, EventArgs e)
{
if (pageall > 0)
{
start = (pageall - 1) * count;
page = pageall;
tslPage.Text = page.ToString();
this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
}
}
上邊紅色部分獲取總行數是調用的數據操做層裏的getds方法返回一個數據集,類和方法以下:
class DBExecute { string G_str_connectionString = @"Data Source=70AB360C9ABA49E/SQLEXPRESS;Database=db_CRM;integrated security=true";//這裏設置成你本身的鏈接 public DBExecute(){} public DBExecute(string M_str_connectionString) { G_str_connectionString = M_str_connectionString; } #region 創建數據庫連接 /// <summary> /// 創建數據庫鏈接 /// </summary> /// <returns>返回SqlConnection對象</returns> public SqlConnection getcon() { string M_str_sqlcon = G_str_connectionString; SqlConnection myCon = new SqlConnection(M_str_sqlcon); return myCon; } #endregion #region 查詢數據庫返回一個DataSet對象 /// <summary> /// 查詢數據庫返回一個DataSet對象 /// </summary> /// <param name="M_str_sqlstr">SQL語句</param> /// <param name="M_str_table">表名</param> /// <returns>返回DataSet對象</returns> public DataSet getds(string M_str_sqlstr, string M_str_table) { DataSet myds = new DataSet(); SqlConnection sqlcon = this.getcon(); SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon); sqlda.Fill(myds, M_str_table); return myds; } #endregion }