实例说明:页面加载的时候显示第一条记录信息,当数据为第一条的时候,上页禁用,当数据为最后一条的时候,下页禁用;当数据只有1条的时候,上页和下页均禁用。
public partial class Form1 : Form
{
public static DataTable PublicTable = new DataTable(); //全局内存表
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//页面初始化的时候加载第一条语句的信息
string sql = "SELECT ID,NAME FROM GOODS";
PublicTable = NewTable(sql);
ShowItem(0);
}
private DataTable NewTable(string sql)
{
//连接数据库并返回需要的内存表
string connect = "连接数据库的字符串";
SqlConnection con = new SqlConnection(connect);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql,con);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
return dt;
}
private void button1_Click(object sender, EventArgs e)
{
//上一个
string goodsid = textBox1.Text; //获取textbox1的值
int up = Address(PublicTable, goodsid); //获取当前显示的textbox1中内容在内存表中的位置
ShowItem(up - 1); //调用方法显示数据
}
private void button2_Click(object sender, EventArgs e)
{
//下一个
string goodsid = textBox1.Text; //获取textbox1的值
int down = Address(PublicTable, goodsid); //获取当前显示的textbox1中内容在内存表中的位置
ShowItem(down + 1); //调用方法显示数据
}
private void ShowItem(int item)
{
//显示数据的方法
int tablecount = PublicTable.Rows.Count-1;//获取内存表的行数
if (item == tablecount) //如果为最后一行,则下一页按钮禁用,否则启用
{
button2.Enabled = false;
}
else
{
button2.Enabled = true;
}
if (item == 0) //如果为第一行,则上一页按钮禁用,否则启用
{
button1.Enabled = false;
}
else
{
button1.Enabled = true;
}
this.textBox1.Text = PublicTable.Rows[item][0].ToString();
this.textBox2.Text = PublicTable.Rows[item][1].ToString();
this.textBox3.Text = (item+1).ToString(); //显示当前是第几个
}
private int Address(DataTable dt, string id)
{
//根据textbox1中的内容与内存表中的第一列进行匹对,相同则跳出循环,返回当前显示的位置
int x = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
string goodsid = dt.Rows[i][0].ToString();
if (goodsid == id)
{
x = i;
break;
}
}
return x;
}
}