RT
当从数据库里取数据的时候
不知道一共会有多少记录。
那如何去取这些数据呢。
比如
有这些数据。19628 我靠 <p>地</p> NULL 2010-01-29 11:32:36.110 33 UpLoadFiles/Doc/323693862279221.doc _IT测试题
19628 我靠 <p>地</p> NULL 2010-01-29 11:32:36.110 33 UpLoadFiles/Doc/3238703600084312.doc 需求资料现在是有两条,有可能三条四条五条的时候。
这里面的字段只有两个值是不相同的。
其他都一样这张表放到datareader里面的话
怎么从datareader取出来数据。
比如我要取UpLoadFiles/Doc/323693862279221.doc
和这个UpLoadFiles/Doc/3238703600084312.doc声明:datareader也不清楚里面具体有多少条

解决方案 »

  1.   

    SqlDataReader reader=你的READER;While(reader.Read())//循环读每条符合条件的记录
    {
      //to do
    }
      

  2.   

    datareader是一直往下读的,会把所有的读出来
    if(dr.Read())
    {
    //do your work
    }
      

  3.   

    if (result.Read())
    读数据
      

  4.   

    因为UpLoadFiles/Doc/323693862279221.doc 这个数据我是需要根据是否有这条记录
    再去动态创建控件
    把这UpLoadFiles/Doc/323693862279221.doc 值赋值给那控件的
    所以我不知道如何确定一共有多少条。
      

  5.   

    不是这个意思。我知道datareader.read会把所有数据读出来的
    现在的问题就是根据读出来的记录数
    再动态创建一些<a>标记
    再把UpLoadFiles/Doc/323693862279221.doc 
    这值给放到a 标记里
    有人明白意思吗、
      

  6.   

    放到list里 遍历list添加《a》ok???
      

  7.   

    while(dr.read())
    {
        string name = dr["name"].ToString();
    }
      

  8.   

    这值给放到a 标记里放在 while(result.Read()) 
    {}中
      

  9.   

    if (result.Read()) 
    {
    读数据 
    在这里面自己拼接html
    }
      

  10.   

    就是前面一个问题
    那个从数据库取出来是这样的
    123.doc|jk.doc|12.xls
    而现在这个附件表里放的是这样的
    aid     filename
    8       123.doc
    8       jk.doc
    8       12.xls前台还是那种显示请右键目标另存为下载
    请右键目标另存为下载
    请右键目标另存为下载这种。
      

  11.   

    if(result.read())
    {
      //只能读一条出来
      }
      

  12.   

    分割字符串,保存到List<T>中,再绑定到reapter
    while(reader.Read())
    {
    StrignBuilder构建字符串
    }
      

  13.   


        SqlDataReader mydatareader2 = SqlHelper.ExecuteReader(SqlStr.xskjConnectString, CommandType.Text, SqlStr.sql_GetContentWithAttachments, MyPara);
                if (mydatareader2.Read())
                {                Panel2.Visible = true;
                    string url = mydatareader2["Filename"].ToString();
                    string name = mydatareader2["name"].ToString();
                    //string[] strurl = url.Split('|');
                    Literal lit = new Literal();
                    StringBuilder sb = new StringBuilder();                //for (int i = 1; i <= strurl.Length; i++)
                    //{
                    //    sb.AppendFormat("<a style='color:red' href='{0}'>请右键目标另存为下载!</a><br/>", strurl[i - 1]);                //}
                    for(int i=0;i<mydatareader2.)
                    sb.AppendFormat("<a style='color:red' href={0}>{1}</a><br/>", url, name);
                    lit.Text = sb.ToString();
                    Panel2.Controls.Add(lit);
                    mydatareader2.Close();
    这样写只会出来一条的
    我现在想在上面代码的这个地方 
         for(int i=0;i<mydatareader2.)
    比如for循环判断一下mydatareader2的记录数。
    可是没有这个方法或者属性。
    该咋写呢。
    囧啊
      

  14.   

    while(reader.read())
    {
     ..........
    }
      

  15.   

    囧,我傻了
    大家都说while
    我那里写的是if
    结果一直说while没用,
    哎。
    杯具