Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published 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窗体代码文件完整程序代码★★★★★


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759