日期:2014-05-18  浏览次数:20400 次

DataSet的一个问题。。。
string   strsql= "select   *   from   bbs_user   where   id= ' "+this.Request[ "id "].ToString()+ " ' ";
conn.Open();
SqlDataAdapter   adp=new   SqlDataAdapter(strsql,conn);
DataSet   ds=new   DataSet();
adp.Fill(ds, "table ");
this.id.Text=ds.Tables[ "table "].Columns[ "id "];
this.id.Text=?
this.name.Text=?
                                                        this.sex.Text=?
                                                        this.age.Text=?
                                                        this.exp.Text=?
将查询得到的结果放在了“table”里,我想把得到的字段依次赋给这5个LABEL,怎么实现呢???


------解决方案--------------------
一个一个赋值
------解决方案--------------------
this.id.Text=ds.Tables[ "table "].Columns[ "id "];
这句会有编译错误,
===========================
DataRow row = ds.Tables[ "table "].Rows[0];

this.id.Text= row[ "id "].ToString();
this.name.Text= row[ "name "].ToString();
...

注意,1,表中是否有行,2,列的数据类型
------解决方案--------------------
string strsql= "select * from bbs_user where id= ' "+this.Request[ "id "].ToString()+ " ' ";
conn.Open();
SqlDataAdapter adp=new SqlDataAdapter(strsql,conn);
DataSet ds=new DataSet();
adp.Fill(ds, "table ");

DataTable dt = ds.Tables[0];
if(dt.Rows.Count > 0) {
DataRow dr = dt.Rows[0]; // 读取第一行
this.id.Text= dr[ "id "].ToString(); // 以下假设 id,sex...是你的列字段名
this.name.Text= dr[ "Name "].ToString();
this.sex.Text= dr[ "Sex "].ToString();
this.age.Text= dr[ "Age "].ToString();
this.exp.Text= dr[ "Exp "].ToString();
}

Good Luck!
------解决方案--------------------

this.id.Text=ds.Tables[ "table "].Rows[0][ "id "].ToString();
this.name.Text=?同上
this.sex.Text=?
this.age.Text=?
this.exp.Text=?

最好先判断一下DataSet中的table是否有行,要不然有可能发生错误

------解决方案--------------------
string strsql= "select * from bbs_user where id= ' "+this.Request[ "id "].ToString()+ " ' ";
conn.Open();
SqlDataAdapter adp=new SqlDataAdapter(strsql,conn);
DataSet ds=new DataSet();
adp.Fill(ds, "table ");

DataTable dt = ds.Tables[ "talbe "];//得到表的对象
//假如你有3个安段,name,age,sex。按如下方法得到
this.lblName.text=dt.Rows[0][0].ToString();//lblName是显示name的标签
this.lblAge.text=dt.Rows[0][1].ToString();//lblAge是显示age的标签
this.lblSex.text=dt.Rows[0][2].ToString();//lblSex是显示sex的标签

======================
就是这样的。其实现这个的方法有很多。我们在看问题的时候,先要能看到大的方面,这样我们就有一个大的方向,然后理清了思路再回过头来着手小的细节!