我想用一个for循环读取数据库中的数据,经常用控件,现在居然都忘了怎么写了,半天脑子都转不过来麻烦各位给个答案,非常感谢,例如:(表明:message  内有字段——mid、mName、mre)我需要把数据读出来用一个lable接收!显示前5条

解决方案 »

  1.   

            for (int i = 0; i < 5;i++ )
            {
                //
            }
    这样
      

  2.   

    DataTable dt=bll.GetDataTable();
    foreach(DataRow row in dt.Rows)
    {
    this.Lable.Text+=row["mid"].ToString()+row["mName"].ToString()+row["mRe"].ToString();
    }
      

  3.   

    快速读数据的话,有datareader稍好一点
    读出来数据的话,楼上的是答案
    public void GetData()
            {
                SqlConnection con = new SqlConnection("server=(local); user=sa; pwd=pwd; database =dbName");
                try
                {
                    string sql = "select * from TestTable";                
                    if (con.State != ConnectionState.Open)
                        con.Open();
                    IDbCommand cmd = con.CreateCommand();
                    cmd.CommandText = sql;
                    IDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        Label1.Text = reader["mid"] + "," + reader["mname"] + "," + reader["xxx"];
                    }            }
                catch(Exception ex)
                {
                    //log exception
                }
                finally
                {
                    con.Close();
                   
                }        }
      

  4.   

    先select top 5 * from 表 
    for(i=0;i<ds.table[0].rows;i++)
    {
    lable+=ds.table[0].rows[i]["name"];
    }
      

  5.   

    方法:循环读取(可写到数据访问层)
             public static message Get()
            {
               
                  string sql = "select top 5 * from message ";
                SqlDataReader read =DbHelperSQL.ExecuteReader(sql);
                if (read.Read())
                {
                    message ms = new message();
                    ms.mid= (int)read["mid"];
                    ms.mname= (string)read["mname"];
                    ms.mre= (string)read["mre"];
                    read.Close();
                    return ms;
                }
                else
                {
                    read.Close();
                    return null;
                }        }调用:message ms=Get();
         this.lblmid.text=ms.mid;
         this.lblname.text=ms.mname;
         this.lblre.text=ms.mre;
      

  6.   

    或者
               
             方法:
              public DataSet Get()
            {
                string sql = "select top 5 * from message ";
                return DbHelperSQL.Query(sql);
            }
     
                 DataSet ds = new DataSet();
                ds = Get();
                DataTable dt = new DataTable();
                dt = ds.Tables[0];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                     this.lblmid.text= dt.Rows[i]["mid"].ToString() + ",";
                     this.lblname.text=dt.Rows[i]["mname"].ToString() + ",";
                     this.lblre.text=dt.Rows[i]["mre"].ToString() + ",";
                }
      

  7.   

    用for循环读出来,放到label里边?那最后就剩最后一次的,想干嘛呀?
    像楼上几位的做法更好!
      

  8.   


     protected string GetValues()
        {
          string strSql = "select top 5 mid,mName,mre from message";
          //string strOracle = "select mid,mName,mre from message where rownum <=5";
          DataTable ATable = Client.GetDataTable(strSql);
          StringBuilder strValue = new StringBuilder();
          foreach (DataRow ARow in ATable.Rows)
          {
            strValue.Append("mid:");
            strValue.Append(ARow["mid"].ToString());
            strValue.Append(" \t ");
            strValue.Append("mName:");
            strValue.Append(ARow["mName"].ToString());
            strValue.Append(" \t ");
            strValue.Append("mre:");
            strValue.Append(ARow["mre"].ToString());
            strValue.Append(" \r\n ");
          }
          return strValue.ToString();     
        }
      

  9.   

    谢谢,不过是这样的,我从数据库中读出来的值都放到了一个list集合中,现在要把这些值从list中读取出来,应该有一个简单的循环就可以了,但是我就是写不出来(主要是写循环),帮帮忙!
      

  10.   

    各位的给出的答案都不错,我忘了说,数据已经从表中读取出来了,现在我把它放在了一个list集合中,但是现在我实在写不出来怎么从list集合中取值,应该只要有简单的循环就行,帮帮忙,谢谢各位!
      

  11.   

    foreach(T t in lst.Take(5))
    {
    lbl.Text=t.mName;}
    //或FindAll(delegate(T t){return t.ID>10;});
      

  12.   

      protected string GetValues()
      {
        List<Message> list = new List<Message>();
        int num = DBNull.Value;//前5条记录            
        StringBuilder strValue = new StringBuilder();   //值的拼接
        if (list.Count >= 5)
          num = 5;
        else
          num = list.Count;    for (int i = 0; i < num; i++)
        {
          Message M = list[i] as Message;
          strValue.Append("mid:");
          strValue.Append(M.Mid);
          strValue.Append(" \t ");
          strValue.Append("mName:");
          strValue.Append(M.MName);
          strValue.Append(" \t ");
          strValue.Append("mre:");
          strValue.Append(M.Mre);
          strValue.Append(" \r\n ");    }
        return strValue.ToString();
      }
      

  13.   

    List<Message> lst= new List<Message>();
     for (int i = 0; i < lst.Count; i++)
      {
          Message message= lst[i] as Message;
          dr["mid"] = message.mid.ToString();
          dr["mname"] = message.mname.Trim();
          dr["mre"] = message.mre.Trim();
      }
    ..............。
    说的是这样吗  
      

  14.   

    List<Message> lst= new List<Message>();
    应该是List<Message> lst=后台得到list的方法吧  如果是上面这样 lst可能取到值麽?
      

  15.   


    dataset ds=ReadData();
    if(ds!=null)
    {
        if(ds.tables.count>0)
    {
      datatable dt=ds.tables[0];
    String str=string.empty;
       foreach(DataRow row in dt.rows)
    {
    str+=row["...."].ToString()+row["....."].ToString();
    str+=";";
    }
    str=str.substring(0,str.length-1);
    }
    }
    label1.text=str
      

  16.   

    foreach(DataRow dr in ds.Tables[0].Rows)
    or
    for(int j=0;j<ds.Tables[0].Rows.count;j++)
      

  17.   

    直接搞个list接收datareader读取到的数据  然后再去list里面取出你想要的数据啊
    至于你说的用label接收,我不大理解,你是不是要用取到的数据中的某些字段赋值到label中?
      

  18.   


    用datareader是好
    但有时候会报datareader没有关闭的错误
    很麻烦
      

  19.   

    24楼datareader没有关闭只能说你太过粗心没有去关闭它  
    你还可以使用using关键字来做一些帮你释放资源的事  O(∩_∩)O~LZ 的问题不是特别的清楚 = = 不过前面的几位已经说的差不多了   
      

  20.   

    private string getData()
    {
        sqlconnection conn....
        string str="select * from message";
        sqlDataAdapter da=new sqlDataAdapter(str,conn);
        DataTable dt=new DataTable();
        da.fill(dt);
        int count=dt.rows.cout;    string strShow="<div>";
        for(int i=0;i<5;i++)
        {
           DataRow Row=dt.Rows[i];
           strShow+="<div style='float:left;'>"+Row["mid"]+"</div>";
           strShow+="<div style='float:left;'>"+Row["mName、mre"]+"</div>";
           strShow+="<div style=''>"+Row["mre"]+"</div>";
        }
       strShow+="</div>";
    return strShow;
    }
      

  21.   

    strShow+="<div style='float:left;'>"+Row["mName、mre"]+"</div>";写快了,很明显应该是strShow+="<div style='float:left;'>"+Row["mName"]+"</div>";
      

  22.   

    用datareader是好
    但有时候会报datareader没有关闭的错误
    很麻烦

    你可以在SqlHelper.cs类中写一个关闭连接的方法closesqlconnection(),在里面判断连接的状态
     if (conn.State == ConnectionState.Open)
               {
                   conn.Close();
               }
    然后直接在后台代码调用该方法就可以了,不必再担心连接的关闭问题。
      

  23.   

    public void GetData()
            {
                SqlConnection con = new SqlConnection("server=(local); user=sa; pwd=pwd; database =dbName");
                try
                {
                    string sql = "select * from TestTable";                
                    if (con.State != ConnectionState.Open)
                        con.Open();
                    IDbCommand cmd = con.CreateCommand();
                    cmd.CommandText = sql;
                    IDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        Label1.Text = reader["mid"] + "," + reader["mname"] + "," + reader["xxx"];
                    }            }
                catch(Exception ex)
                {
                    //log exception
                }
                finally
                {
                    con.Close();
                   
                }        }