私はVB.Netでの経験はありません。 したがって、C#コードを読むことができます。
この例のように構築:
Load += Form1_Load;
nudNumber.ValueChanged+=nudNumber_ValueChanged;
cboPage.SelectedIndexChanged+=cboPage_SelectedIndexChanged;
これを行うには、すべての変数:
int currentPageIndex = 1;
int pageSize = 20;
int pageNumber = 0;
int fistRow, lastRow;
int rows;
SqlConnection QueryMailRefNo = new SqlConnection("Select * from File_Movement where [email protected]_No Order by fdate desc, ftime desc");
イベントときのForm_Loadあなたのプログラムは、このようなイベントがあります
():
void Form1_Load(object sender, EventArgs e)
{
string sql = "select count(*) as MaxNumber from File_Movement";
SqlCommand cmd = new SqlCommand(sql, QueryMailRefNo);
QueryMailRefNo.Open();
rows = Convert.ToInt32(cmd.ExecuteScalar());
pageTotal();
QueryMailRefNo.Close();
}
すべてのページをカウントする機能。
void pageTotal()
{
pageNumber = rows % pageSize != 0 ? rows/pageSize + 1 : rows/pageSize; // Count page if have pageSize in Page
lblTotal.Text = "/" + pageNumber.ToString();
cboPage.Items.Clear();
for (int i = 1; i < pageNumber; i++)
cboPage.Items.Add(i + "");
cboPage.SelectedIndex = 0;
}
次に、イベントページデータの変化数行のデフォルト:
最後に
private void nudNumber_ValueChanged(object sender, EventArgs e)
{
pageSize = Convert.ToInt32(nudNumber.Value);
pageTotal();
}
、イベントあなたが総ページ内の任意のページを選択します。
void cboPage_SelectedIndexChanged(object sender, EventArgs e)
{
currentPageIndex = Convert.ToInt32(cboPage.Text);
fistRow = pageSize * (currentPageIndex - 1); // First rows
lastRow = pageSize * (currentPageIndex); //Final rows of page selected
string sql = "select Row_number() over(order by fdate) * from File_Movement";
SqlDataAdapter da = new SqlDataAdapter(sql, QueryMailRefNo);
DataSet ds = new DataSet();
da.Fill(ds, fistRow, pageSize, "ITSVT"); //Get data from firstRow and get pageSizeLấy of rows
dataGridView1.DataSource = ds.Tables[0];
}
お手伝いします。