Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 1:35:12 ADO.NET查询数据库中数据
ADO.NET查询数据库中数据
查询数据库中数据通过为SqlDataAdapter类插入select语句,将其结果通过Fill方法以行的形式填充到DataSet结果集中,然后以上下滚动的形式呈现给用户。程序运行结果如图1、图2、图3所示。图1 查询窗体图2 提示窗体图3 提示窗体程序开发步骤如下。(1)新建一个windows窗体(FrmSelect),在窗体上添加相应的控件(如图1所示)。(2)在(ClsDBControl.cs)类内完成查询数据的方法(dsResult)用于返回结果集,以及获得表中行数的方法(Max)返回整数型。(3)主要程序代码如下。主要通过SqlDataAdapter类的Fill方法,将查询结果中的数据有选择的一次提取出一条填充到dataSet结果集中,程序代码如下。publicDataSetdsResult(int currentIndex){int pageSize = 1;string orderSQL = "SELECT * FROM t_People ORDER BY tb_PID";SqlDataAdapter adapter = new SqlDataAdapter(orderSQL, ConDB());DataSetdataSet = newDataSet("t_People");adapter.Fill(dataSet, currentIndex, pageSize, "t_People");returnDataSet;}获得表中记录的总数,用于标识最后一条信息的索引值。程序代码如下:public int Max(){SqlCommandcmd = new SqlCommand("select count(*) from t_people", ConDB());return int.Parse(cmd.ExecuteScalar().ToString());}窗体加载事件,通过数据操作类(ClsDBControl)内的Max方法获得总行数用于初始化变量(LastNum)。程序代码如下:private void FrmSelect_Load(object sender, EventArgs e){ClsDB.ClsDBControl CDBLast=new OptDB.ClsDB.ClsDBControl();LastNum = CDBLast.Max();}实现显示“第一条”信息的功能。程序代码如下:private void button1_Click(object sender, EventArgs e){i = 0;ClsDB.ClsDBControl cdb = new OptDB.ClsDB.ClsDBControl();DataSetdsNew=cdb.dsResult(i);this.textBox1.Text = dsNew.Tables[0].Rows[0][0].ToString();this.textBox2.Text = dsNew.Tables[0].Rows[0][1].ToString();this.textBox3.Text = dsNew.Tables[0].Rows[0][2].ToString();}实现显示“上一条”信息的功能。程序代码如下:private void button2_Click(object sender, EventArgs e){i -= 1;if (i >= 0){ClsDB.ClsDBControl cdb = new OptDB.ClsDB.ClsDBControl();DataSetdsNew = cdb.dsResult(i);this.textBox1.Text = dsNew.Tables[0].Rows[0][0].ToString();this.textBox2.Text = dsNew.Tables[0].Rows[0][1].ToString();this.textBox3.Text = dsNew.Tables[0].Rows[0][2].ToString();}else{i += 1;MessageBox.Show("这已是第一条信息");}}实现显示“最后一条”信息的功能。程序代码如下:private void button4_Click(object sender, EventArgs e){ClsDB.ClsDBControl cdb = new OptDB.ClsDB.ClsDBControl();DataSetdsNew = cdb.dsResult(LastNum-1);this.textBox1.Text = dsNew.Tables[0].Rows[0][0].ToString();this.textBox2.Text = dsNew.Tables[0].Rows[0][1].ToString();this.textBox3.Text = dsNew.Tables[0].Rows[0][2].ToString();i = LastNum - 1;}实现显示“下一条”信息的功能。程序代码如下:private void button3_Click(object sender, EventArgs e){i += 1;if (i <= (LastNum - 1)){ClsDB.ClsDBControl cdb = new OptDB.ClsDB.ClsDBControl();DataSetdsNew = cdb.dsResult(i);this.textBox1.Text = dsNew.Tables[0].Rows[0][0].ToString();this.textBox2.Text = dsNew.Tables[0].Rows[0][1].ToString();this.textBox3.Text = dsNew.Tables[0].Rows[0][2].ToString();}lse{i -= 1;//一定要减,否则出现逻辑错误MessageBox.Show("这已是最后一条信息");}}注意:程序中用到的变量i是用来记录当前信息所在的行数,而LastNum则是用来记录结果集(DataSet)总行数。完整程序代码如下:★ ★★★★FrmSelect.cs窗体代码文件完整程序代码★★★★★
赞