C#DataGridView分页显示代码详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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) {
G_str_connectionString = M_str_connectionString; } #region 建立数据库链接 /// <summary> /// 建立数据库连接 /// </summary> /// <returns>返回 SqlConnection 对象</returns> public SqlConnection getcon() {
#region 初始化分页显示的参数 static int rowsall = 0;//总行数 static int pageall = 0;//总页数 static int page = 0;//第几页 static int count = 20;//返回 20 行 static int start = 0;//从第 start 行开始返回 #endregion
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) { //设置跳转到第几页
C#DataGridView 分页显示代码详解
DBClass.DBExecute dbexecute = new DBExecute();
string connectionString = @"Data Source=ServerName;Database=DatabaseName;integrated security=true";
/// 第一页 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 } }
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
Source=70AB360C9ABA49E\SQLEXPRESS;Database=db_CRM;integrated security=true";//这里设置成你自己的连接
public DBExecute(){} public DBExecute(string M_str_connectionString) {
return myCon; }
#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) {
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; }
SqlConnection con = this.getcon(); DataSet myds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(myds, start, count, tablename); return myds.Tables[tablename]; } #endregion
#endregion }
建议抽象到一个对象,这样就可以代码重用,在任意地方实现,提高开发效率
this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//绑定 DataGridView
} }
上边红色部分获取总行数是调用的数据操作层里的 getds 方法返回一个数据集, 类和方法如下:
class DBExecute { string G_str_connectionString = @"Data
}
//最后一页 private void toolStripButton5_Click(object sender, EventArgs e) {
if (pageall > 0) {
start = (pageall - 1) * count; page = pageall; tslPage.Text = page.ToString();
#region 建立数据库链接 /// <summary> /// 建立数据库连接 /// </summary> /// <returns>返回 SqlConnection 对象</returns> public SqlConnection getcon() {
SqlConnection myCon = new SqlConnection(connectionString);
// 上一页 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
} #endregion
#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) {
}
}Fra Baidu bibliotek
/// 下一页 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 }
相关文档
最新文档