c# 循环读出ACCESS里的数据

来源:百度知道 编辑:UC知道 时间:2024/06/22 15:50:06
int b = int.Parse(this.jf.Text);
OleDbConnection dbconn2 = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=\\192.168.1.103\data\ntgj.mdb");
string sql2 = "select 奖品,积分 from [ping] where 积分 <= " + b + " ";
OleDbCommand cmd2 = new OleDbCommand();
cmd2.Connection = dbconn2;
cmd2.CommandText = sql2;
dbconn2.Open();//打开连接
OleDbDataReader dr2 = cmd2.ExecuteReader();
if (dr2.Read())
{
this.jp.Text = dr2.GetString(0);
this.kjf.Text = Convert.ToString(dr2.GetValue(1));

}
dr2.Close();
dr2.Dispose();

cmd2.Dispose();
dbconn2.Close();
dbconn2.Dispose();

--------------------
如果B>=500 的话,则读出数据库里所有少于等于500里的值,现在

//string strTemp="";
//string strTemp2="";
while(dr2.Read())
{
int iTmp = Convert.ToInt32(dr2.GetValue(1));
if(iTmp<=b)
{

this.jp.Text = dr2.GetString(0);

this.kjf.Text = iTmp.ToString();

//strTemp += dr2.GetString(0) + ";";

//strTemp2 += iTmp.ToString() + ";";
}
}
//this.jp.Text = strTemp;

//this.kjf.Text = strTemp2;

要这样的效果?

用While()循环
while(dr2.Read())
{
要读出来的用SQL控制好
}
dr2.close()

很简单
你仔细想想
if (dr2.Read())
{
this.jp.Text = dr2.GetString(0);
this.kjf.Text = Convert.ToString(dr2.GetValue(1));

}

这个方法 最后
this.jp.Text =“最后一个符合要求的值”
this.kjf.Text==“最后一个符合要求的值”
你可以在、这么做
Arraylist al=new ArrayList();
if (dr2.Read())
{ al.add(dr2.GetString(0));}
这样al里存在的就是整个数组
如果不知道Arraylist是什么 就去看书