当前位置:首页 >.NET > 正文内容

c#中分页显示数据

大滑稽11年前 (2014-03-24).NET1429

 

    //c#中分页显示数据

    public partial class Form1 : Form
    {

        int pageSize = 0;

        int maxRec = 0;

        int pageCount = 0;

        int currentPage = 0;

        int recNo = 0;

        DataSet ds = new DataSet();

        DataTable dtSource = new DataTable();

        public Form1()
        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {

            string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/My Documents/Visual Studio 2005/Projects/WindowsApplication1/WindowsApplication1/表.mdb";//连接数据库

            OleDbConnection conn = new OleDbConnection(strconn);

            conn.Open();

            OleDbDataAdapter sda = new OleDbDataAdapter("select * from Area", conn);//这里就随便取一数据了

            sda.Fill(ds, "ds");

            conn.Close();

            dtSource = ds.Tables[0];

            getFillDateset();

        }

        #region 数据处理

        ///
        /// 得到期初数据
        ///
       
        private void getFillDateset()
        {

            try
            {

                //每页显示数

                pageSize = 10; //得到最大记录数

                maxRec = dtSource.Rows.Count; //共有多少页

                pageCount = (maxRec / pageSize); //取余数

                if ((maxRec % pageSize) > 0)
                {

                    pageCount++;

                }

                //默认第一页

                currentPage = 1;

                recNo = 0;

                LoadPage();

            }

            catch { }

        }

        ///
        /// 判断是否数据已经加载 ///
        /// ///

        private bool CheckFillButton()
        {

            if (pageSize == 0)

                return false;

            else

                return true;

        }

        ///
        /// 取DataTable的数据 ///
        ///

        private void LoadPage()
        {

            int startRec;

            int endRec;

            DataTable dtTemp;

            dtTemp = dtSource.Clone();

            if (currentPage == pageCount)

                endRec = maxRec;

            else endRec = pageSize * currentPage;

            startRec = recNo;

            for (int i = startRec; i < endRec; i++)
            {

                dtTemp.ImportRow(dtSource.Rows[i]);

                recNo++;

            }

            this.dataGridView1.DataSource = dtTemp;

        }

        private void changepage(int m)
        {

            switch (m)
            {

                case 1:

                    if (currentPage == 1)
                    {

                        MessageBox.Show("已经第一页了");

                        return;

                    }

                    currentPage = 1;

                    recNo = 0;

                    LoadPage();

                    break;

                case 2:

                    currentPage++;

                    if (currentPage > pageCount)
                    {

                        currentPage = pageCount;

                        if (recNo == maxRec)
                        {

                            MessageBox.Show("已经最后一页了");

                            return;

                        }

                        else

                            recNo = pageSize * (currentPage + 1);

                    }

                    LoadPage();

                    break;

                case 3:

                    if (currentPage == pageCount)

                        recNo = pageSize * (currentPage - 2);

                    currentPage--;

                    if (currentPage < 1)
                    {

                        MessageBox.Show("已经第一页了");

                        currentPage = 1;

                        return;

                    }

                    else

                        recNo = pageSize * (currentPage - 1);

                    LoadPage();

                    break;

                case 4:

                    if (!CheckFillButton())

                        return;

                    if (recNo == maxRec)
                    {

                        MessageBox.Show("已经最后一页了");

                        return;

                    }

                    currentPage = pageCount;

                    recNo = pageSize * (currentPage - 1);

                    LoadPage();

                    break;

            }

        }

        #endregion

        private void button1_Click(object sender, EventArgs e)
        {

            changepage(1);

        }

        private void button2_Click(object sender, EventArgs e)
        {

            changepage(2);

        }

        private void button3_Click(object sender, EventArgs e)
        {

            changepage(3);

        }

        private void button4_Click(object sender, EventArgs e)
        {
            changepage(4);

        }

    }

扫描二维码推送至手机访问。

版权声明:本文由第★一★次发布,如需转载请注明出处。

本文链接:http://wpers.net/post/71.html

“c#中分页显示数据” 的相关文章

Cbo控件数据源绑定

 //Cbo控件数据源绑定DataTable DtType = noteType.GetTypeList("");         ...

C#遍历控件的方法

首先,要想遍历,就必须找到你想找的表单里面的所有控件,然后一个个的逐一比对,当找到了你需要的控件的时候,再做你需要的操作。1、foreach方法foreach (Control control in ...

Linq读写XML

         private List<News> GetNews(string html)    &n...

修改注册表限制软件使用次数

 private void Form1_Load(object sender, System.EventArgs e){RegistryKey RootKey,RegKey; //项名为:HKEY_CURRENT_USER\So...

C#修改浏览器主页

string key = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main";      &n...