基本信息
源码名称:c# winform分页实例源码下载(原理:存储过程分页)
源码大小:0.10M
文件格式:.rar
开发语言:C#
更新时间:2015-03-13
   源码介绍


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

namespace allenPageTest
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            BindDataWithPage(1);
        }

        //总记录数
        public int RecordCount = 0;
        private string strConn = "server=B1CMBCS;database=PRDST;uid=apps_prdst;pwd=userprdst98";
        //"Server=localhost;database=Db_TonyPaging;uid=sa;pwd=sa;";
        private string strProcedure = "_PageTest ";


        /// <summary>
        /// 绑定第Index页的数据
        /// </summary>
        /// <param name="Index"></param>
        private void BindDataWithPage(int Index)
        {
            allenPage1.PageIndex = Index;
            //winFormPager1.PageSize = 10;; ;
            DataTable dt = GetData(strConn, strProcedure, Index, allenPage1.PageSize);

            dataGridView1.DataSource = dt;

            //获取并设置总记录数
            allenPage1.RecordCount = RecordCount;
        }


        /// <summary>
        /// 获取数据源
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="strProcedure"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        private DataTable GetData(string conn, string strProcedure, int pageIndex, int pageSize)
        {

            using (SqlConnection connection = new SqlConnection(conn))
            {
                SqlCommand command = new SqlCommand(strProcedure, connection);
                command.CommandType = CommandType.StoredProcedure;//采用存储过程
                //存储过程参数
                command.Parameters.Add("@Table", SqlDbType.NVarChar, 1000).Value = "HoursMIPK";
                command.Parameters.Add("@TIndex", SqlDbType.NVarChar, 100).Value = "ID";
                command.Parameters.Add("@Column", SqlDbType.NVarChar, 2000).Value = "*";
                command.Parameters.Add("@Sql", SqlDbType.NVarChar, 3000).Value = " 1=1 ";
                command.Parameters.Add("@PageIndex", SqlDbType.Int, 8).Value = pageIndex.ToString();
                command.Parameters.Add("@PageSize", SqlDbType.Int, 8).Value = pageSize.ToString();
                command.Parameters.Add("@Sort", SqlDbType.NVarChar, 200).Value = " ID desc";
                //打开连接
                if (connection.State != ConnectionState.Open) { connection.Open(); }
                try
                {
                    //填充数据
                    SqlDataAdapter da = new SqlDataAdapter(command);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    //获取总记录数
                    RecordCount = Convert.ToInt32(ds.Tables[1].Rows[0][0]);
                    //返回数据集
                    return ds.Tables[0];

                }
                catch (SqlException err)
                {
                    MessageBox.Show(err.Message);
                    return null; ;
                }
                finally
                {
                    connection.Close();
                }
            }
        }

        private void allenPage1_PageIndexChanged(object sender, EventArgs e)
        {
            BindDataWithPage(allenPage1.PageIndex);
        }
    }
}