• c#在winform中用DataGridView实现分页效果


    public partial class Form11 : Form
    {
    public Form11()
    {
    InitializeComponent();
    }

    private int Inum = 1; //行号,规定其索引初始值为1
    int pagesize = 4;
    int allCount =0;
    int pagecount = 0;


    private void Form11_Load(object sender, EventArgs e)
    {
    using(SqlConnection connection = new SqlConnection("server=数服务器名称;uid=sa;pwd=sa;database=数据库名"))
    {


    SqlDataAdapter da = new SqlDataAdapter("select * from tb_Land", connection);


    DataTable dt = new DataTable();


    da.Fill(dt);

    allCount = dt.Rows.Count; //获取数据表中记录的个数

    pagecount = allCount % pagesize; //页数 = 总数/显示的行数

    //只能显示一页,判断是否是整除
    if (pagecount == 0)
    {
    pagecount =allCount / pagesize;
    }
    else
    {
    pagecount = allCount / pagesize + 1;
    }

    this.label1.Text = "共" + pagecount.ToString() + "页";


    show(1,4); //分页显示记录


    // this.label2.Text = "当前第" + Inum.ToString() + "页";
    }
    }

    /// <summary>
    /// 分页显示数据表中的信息
    /// </summary>
    /// <param name="start"></param>
    /// <param name="end"></param>
    private void show(int start,int end)
    {
    SqlConnection connection = new SqlConnection("server=服务器名称;uid=sa;pwd=sa;database=数据库名称");


    SqlDataAdapter das = new SqlDataAdapter("select top "+pagesize+" * from tb_Land where Id not in (select top "+pagesize*(Inum-1)+" Id from

    tb_Land)",connection); //sql语句


    DataSet ds = new DataSet();

    //显示指定范围的记录
    das.Fill(ds,"one");


    this.dataGridView1.DataSource = ds.Tables["one"].DefaultView; //绑定显示数据
    ds = null;
    }


    //第一页
    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
    Inum = 1;
    show(Inum, pagesize);
    }

    //末尾页
    private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
    Inum = pagecount;
    show(Inum-1, pagesize);
    }

    //下一页
    private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
    Inum++;
    if (Inum <= pagesize) //如果没有超出记录行数
    {
    show(Inum, pagesize);
    }
    else
    {
    MessageBox.Show("现已是最后一页记录");
    Inum = pagecount-1; 更改为 Inum = pagecount;
    return;
    }
    }

    //上一页
    private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
    Inum--;
    if (Inum > 0) //如果当前不是首记录
    {
    show(Inum, pagesize); //显示上一页记录
    }
    else
    {
    MessageBox.Show("现已是第一页记录");
    Inum = 1;

    return;
    }
    }


    }
    }

  • 相关阅读:
    20169217 2016-2017-2 《网络攻防实践》第六周学习总结
    20169217 2016-2017-2 《网络攻防实践》第五周学习总结
    20169217 2016-2017-2 《网络攻防实践》第四周学习总结
    20169210 2016-2017-2《网络攻防实践》课程总结
    工具介绍
    20169210 2016-2017-2《网络攻防实践》第十四周免杀技术
    20169210 2016-2017-2《网络攻防实践》第十三周攻击MS08-067漏洞
    20169210 2016-2017-2《网络攻防实践》第十二周SQL注入
    20169210 2016-2017-2《网络攻防实践》第十一周总结
    20169210 2016-2017-2《网络攻防实践》第十周总结
  • 原文地址:https://www.cnblogs.com/xrtd/p/3867160.html
Copyright © 2020-2023  润新知