C# Winform实现数据分页显示( 二 )


mySqlDataReader[3].ToString());
laterBacks.Add(laterBack);
}
mySqlDataReader.Close();
return laterBacks;
}
public DataSet getAllDataSet()
{
string sql = "select * from later_back";
return SqlHelperBase.GetDataSet(sql);
}
//模糊查询
public DataSet getDataSet(LaterBack laterBack)
{
string sql="";
if(laterBack.Student_no != -1)
{
if (laterBack.Dormitory_id != -1) sql = "select * from later_back where dormitory_id like '%" + laterBack.Dormitory_id
+ "%' and student_no like '%" + laterBack.Student_no + "%' and time like '%" + laterBack.Time
+ "%' and reason like '%" + laterBack.Reason + "%'";
else sql = "select * from later_back where student_no like '%" + laterBack.Student_no + "%' and time like '%" + laterBack.Time
+ "%' and reason like '%" + laterBack.Reason + "%'";
}
else
{
if (laterBack.Dormitory_id != -1) sql = "select * from later_back where dormitory_id like '%" + laterBack.Dormitory_id
+ "%' and time like '%" + laterBack.Time+ "%' and reason like '%" + laterBack.Reason + "%'";
else sql = "select * from later_back where time like '%" + laterBack.Time
+ "%' and reason like '%" + laterBack.Reason + "%'";
}
return SqlHelperBase.GetDataSet(sql);
}
}
}
4、源码实现实现分页时,我的思想是,在每次查询时得到一个dataset1,然后在分页时根据一个from_index和一个end_index去得到当前页面要显示的dataset2,用dataset2来刷新当前要显示的数据,然后在dataset2里头支持行数据的修改与删除,可能从这么写不大合适,但是能完成分页的功能,仅供参考 。源码如下:
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WindowsFormsApp1.Bean;
using WindowsFormsApp1.CacheUtil;
using WindowsFormsApp1.SqlHelper;
namespace WindowsFormsApp1
{
public partial class StudentLateBackPanelRightSelect : Form
{
private LaterBackHelper laterBackHelper;
private string []page_counts = { "5","6","7","8","9","10","15","20"};
private int total_page, page_step, current_page_index, total_count;
private DataSet dataSet;
public StudentLateBackPanelRightSelect()
{
laterBackHelper = new LaterBackHelper();
dataSet = laterBackHelper.getAllDataSet();
total_count = dataSet.Tables[0].Rows.Count;
page_step = 5;
total_page = Convert.ToInt16(Math.Ceiling(Convert.ToDouble(total_count) / page_step));
InitializeComponent();
initView(GetViewDataSet(dataSet,1,5));
comboBox_page_count.Items.AddRange(page_counts);
comboBox_page_count.SelectedIndex = 0;
label_all_item_count.Text = total_count.ToString();
label_page_count.Text = total_page.ToString();
}
//每次点击时刷新全局数据
private void initDataPage(int total_count,int page_step, int current_page_index)
{
this.total_count = total_count;
this.page_step = page_step;
this.total_page = Convert.ToInt16(Math.Ceiling(Convert.ToDouble(total_count) / page_step));
this.current_page_index = current_page_index;
}
//初始化界面并加载数据
private void initView(DataSet ds)
{
dataGridView.AutoGenerateColumns = false;
dataGridView.DataSource = ds.Tables[0];
this.dataGridView.Columns["dor_id"].DataPropertyName = ds.Tables[0].Columns[0].ToString();
this.dataGridView.Columns["stu_id"].DataPropertyName = ds.Tables[0].Columns[1].ToString();
this.dataGridView.Columns["time"].DataPropertyName = ds.Tables[0].Columns[2].ToString();
this.dataGridView.Columns["reason"].DataPropertyName = ds.Tables[0].Columns[3].ToString();
}
private void button_select_Click(object sender, EventArgs e)
{
string stu_id = textBox_stu_id.Text, dor_id = textBox_dor_id.Text, time = textBox_time.Text, reason = textBox_reason.Text;
if(stu_id.Equals("")&& dor_id.Equals("") && time.Equals("") && reason.Equals(""))
{
return;
}
if (dor_id.Equals("")) dor_id = "-1";
if (stu_id.Equals("")) stu_id = "-1";
LaterBack laterBack = new LaterBack(int.Parse(dor_id), int.Parse(stu_id), time, reason);


推荐阅读