在数据库的存储过程代码为:
create procedure xue
@age varchar(50) output
@sex varchar(50)
As   select age=@age from student where sex=@sex在VS代码为
SqlConnection cn=new SqlConnection("Data Source=(local);database=mes;Trusted_Connection=yes");
SqlCommand cm=new SqlCommand("xue",cn);
cn.Open();
cm.Parameter.Add("@age",SqlDbType.Varchar,50)
cm.Parameter["@age"].Direction=ParameterDirection.Output;
cm.Parameter.Add("@sex",SqlDbType.Varchar,50)
cm.Parameter["@sex"].Value="男";
SqlDataReader dr=cm.ExecuteReader();
this.textBox.text=cm.Parameter["age"].Value
cn.Close();问题是,我想把数据库所有SEX为男的AGE信息,都给 textBox,
现在只能查询到最后一个数据,因为才开始学数据存储过程,希望得到解答,谢谢
  

解决方案 »

  1.   

    也在SqlDataReader 的哪行后面添加了循环,可是没有效果,连最后一个数据都不出while(dr.Read()){ ....}cn.Close()
      

  2.   

    cm.CommandType = CommandType.StoreProcedure;
    另外,代碼命名不夠規範,可讀性太不好了。
      

  3.   

    修改存储过程如下:
    alter procedure xue
    @age varchar(50) output
    @sex varchar(50)
    As   
    select age=age+','+@age from student where sex=@sex
    Go你可以得到一个以逗号隔开的串.如:19,20,18,19
    这样的话你可以直接输出 也可以对这个串做进一步处理.