加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dataGridview中的分页功能实现(多个对像,不是单一的)

发布时间:2020-12-13 20:35:00 所属栏目:百科 来源:网络整理
导读:page.class using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Windows .Forms; namespace pageClass { class Page { public int pageIndex = 1; //用于存放页数 public DataTable objDataTable = null;

page.class

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows .Forms;

namespace pageClass
{
class Page
{

public int pageIndex = 1; //用于存放页数
public DataTable objDataTable = null;
private int pageRowNumber = 15;//分页的行数默认的为18

public int getPageRowNumber()//返回分页的行数
{
return pageRowNumber;
}

public void setDataTable(DataTable datattable)
{
this.objDataTable = datattable;
}
public void setpageNumber(string number)//设置分页的行数
{
try
{
this.pageRowNumber =Convert.ToInt32(number);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(),"提示信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
public void pageEnter(string pageNumber)//转到页数的方法,传过来的是一个文本框中的值
{
try
{
pageIndex = Convert.ToInt32(pageNumber);//取得文本框中的值

pageLoad();//加裁页
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(),MessageBoxIcon.Warning);
}
}
public DataTable pageLoad()//找页并加裁数据
{
try
{

//生成一个新的表

if (pageIndex <= 1)//为真时表示到了0页以下所以要回到第一页
{
pageIndex = 1;
}
else if (pageIndex > objDataTable.Rows.Count / getPageRowNumber() + 1)
{
pageIndex = 1;//表示到了尽头也在回到第一页
}
//真时停用上一页
//isEnabledPageUp();
//表示记录数除以10以后加1表示到了最后一页 真时停用下一页
//isEnabledPageDowm();
/**因为记录的开始是0所以要为页数-1
* 输入的页数为1时,应该得到的记录是0到19
* 输入的页数为2时,应该得到的记录是20到39
* 。。。。。。。。。。。。。。。。。。。
*
* */
DataTable dt = new DataTable();
for (int k = 0; k < objDataTable.Columns.Count; k++)//objdatset.Tables[0].Columns.Count是总的行数从1开始
{
dt.Columns.Add(this.objDataTable.Columns[k].ColumnName.ToString(),typeof(string));
}
try
{
//给表中的每一列赋值
for (int i = (pageIndex - 1) * getPageRowNumber(); i <= (pageIndex - 1) * getPageRowNumber() + (getPageRowNumber() - 1); i++)//添加行
{
DataRow dr = dt.NewRow();
for (int j = 0; j < objDataTable.Columns.Count; j++)//objdatset.Tables[0].Columns.Count是总的行数从1开始
{
dr[j] = objDataTable.Rows[i][j];//添加列
}
dt.Rows.Add(dr);//把得到的新行添加到新的表中
}
return dt;
}
catch (Exception)
{
return dt;
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(),MessageBoxIcon.Warning);
return null;
}
}
public void pageUp()//上一页
{
pageIndex = pageIndex - 1;
pageLoad();
}
public void pageDown()//下一页
{
pageIndex = pageIndex + 1;
pageLoad();
}
public Boolean isEnabledPageDowm()//此为下一页
{
//表示记录数除以pageNumber以后加1表示到了最后一页 真时停用下一页
if (pageIndex == objDataTable.Rows.Count / getPageRowNumber() + 1)
{
return false;
}
else
{
return true;
}
}
public Boolean isEnabledPageUp()//此为上一页
{
//真时停用上一页
if (pageIndex == 1)
{
return false;
}
else
{
return true;
}
}
}
}
mYsql.class

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace pageClass
{
class MySql
{
private SqlConnection objSqlConnection;
private SqlDataAdapter objSqlAdapter;
private DataSet dataset;
//用于执行SQL语句的方法只而传值第一个对数的表名第二个是要执行的SQL语句
public DataSet exeSql(string tableName,string strSql)
{
//this.sqlConncetion();
try
{
objSqlConnection.Open();//打开连接
objSqlAdapter = new SqlDataAdapter(strSql,objSqlConnection);
dataset = new DataSet();
objSqlAdapter.Fill(dataset,tableName);//把得到的值给DataGrid
return dataset;
}
catch (Exception ee)
{
MessageBox.Show("/n语句执行失败请检测您的输入信息后再重试!!!发生异常的原因如下/n/n" + ee.Message.ToString(),MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
return null;
}
finally
{
objSqlConnection.Close();
}
}
public void sqlConnection()
{
try
{
objSqlConnection = new SqlConnection("Data Source=.;Initial Catalog=text;Integrated Security=True");
}
catch (Exception)
{
MessageBox.Show("没有可用的数据库或连接不成功,请确保数据库已附加,请自行检测谢谢合作!!!");
}
}
}
}
Form1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace pageClass
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataSet objDataSet = null;
MySql objMySql = new MySql();
Page objpage = new Page();
private void isEnabledButton()//判断是否停用相关Button
{
this.btnUP.Enabled = objpage.isEnabledPageUp();
this.btnDown.Enabled = objpage.isEnabledPageDowm();
}
private void dataBinddgMyGrid()//用于给datagrid赋值的方法
{
try
{
objpage.setDataTable(this.objDataSet.Tables[0]);

dgMyGrid.DataSource = objpage.pageLoad();//把得到的值给DataGrid
this.txtPageNumber.Text = objpage.pageIndex.ToString();//显示当前的页数
this.txtNumber.Text = objpage.getPageRowNumber().ToString ();
isEnabledButton();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(),MessageBoxIcon.Warning);
}
}
//用于执行SQL语句的方法只而传值第一个对数的表名第二个是要执行的SQL语句
private void exeSql(string tableName,string strSql)
{
try
{
objDataSet = objMySql.exeSql(tableName,strSql);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(),MessageBoxIcon.Warning);
}
}
private void Form1_Load(object sender,EventArgs e)
{
objMySql.sqlConnection();//初始代Conncetion对象
}

private void btnUP_Click(object sender,EventArgs e)//上一页
{
objpage.pageUp();
dataBinddgMyGrid();
}

private void btnDown_Click(object sender,EventArgs e)//下一页
{
objpage.pageDown();
dataBinddgMyGrid();
}

private void btnGO_Click(object sender,EventArgs e)//转到指定的页数
{
objpage.pageEnter(this.txtPageNumber.Text .Trim ().ToString ());
dataBinddgMyGrid();
}

private void btnEnter_Click(object sender,EventArgs e)//设置分页的行数
{
objpage.setpageNumber(this.txtNumber.Text .Trim ().ToString ());
dataBinddgMyGrid();
}

private void btnCode_Click(object sender,EventArgs e)//查询shop表
{
string mySql = "select * from [shop]";
exeSql("shop",mySql);
dataBinddgMyGrid();
}

private void btnStudent_Click(object sender,EventArgs e)//查询studentInfo表
{
string mySql = "select * from studentInfo";
exeSql("studentInfo",mySql);
dataBinddgMyGrid();
}

private void btnDorm_Click(object sender,EventArgs e)//查询dorm表 { string mySql = "select * from [dorm]"; exeSql("dorm",mySql); dataBinddgMyGrid(); } }}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读