数据表里结构大致如下
field1     field2
1          1-1
1          1-2
1          1-3
2          2-1
2          2-2
3          3-1
...        ...
现在要把这个表的纪录提取出来显示在页面上,显示效果大致如下
1          1-1
           1-2
           1-3
---------------------------------
2          2-1
           2-2
---------------------------------
3          3-1
---------------------------------
...
不晓得用什么方法好,请大家支支招,谢谢!

解决方案 »

  1.   

    用gridview绑定你的数据,sql搜索的时候groupby你的field1
    然后检查field1字段下面的各行,由于你按field1排序所以相同的都在一起
    然后将field1字段相同的单元格合并单元格
      

  2.   

    在数据库查询时使用循环。即:每当field1不同时,插入一行:‘--------------’
      

  3.   

    请问用GridView怎么合并单元格?
      

  4.   

    按field1排序,再进行合并单元格
    http://www.cnblogs.com/xjb/archive/2007/12/18/1004203.html 
      

  5.   

    先绑定,然后进行合并,这个效率有点低了,感觉不如直接循环数据集创造一个表格出来.
    但我又想根据field2执行删除操作...看看还有没有更好的方法,呵呵.
    先谢谢楼上的各位.
      

  6.   


    //用最笨的方法吧,在窗体上放个label直接让label的值等于得到的就可以
     private string getstring()
        { 
        
            DataSet ds1;//ds为从数据库中取到的不重复的第一列的值        System.Text.StringBuilder sb=new System.Text.StringBuilder();
    sb.Remove(0,sb.Length);
    sb.Append("<TABLE id='Table1' borderColor='#33ff99' cellSpacing='0' cellPadding='0' width='300' border='1'>");
            //两列,列标题file1,file2
    sb.Append("<tr>");
    sb.Append("<TD borderColor='#33cc99' bgColor='#99cccc' width='150'><FONT face='宋体'><STRONG>"+"field1"+"</STRONG></FONT></TD>");
    sb.Append("<TD borderColor='#33cc99' bgColor='#99cccc' width='150'><FONT face='宋体'><STRONG>"+"field2"+"</STRONG></FONT></TD>");
    sb.Append("</tr>"); for(int i=0;i<ds1.Tables[0].Rows.Count;i++)
    {
    sb.Append("<tr>");
                //填充第一列
        sb.Append("<TD borderColor='#33cc99'><FONT face='宋体' size='2' width='150'>"+ds1.Tables[0].Rows[i][0].ToString()+"</FONT></TD>");
               
                //从数据库查找列名等于第一列的数据,绑定第二列
                sb.Append("<TD borderColor='#33cc99'><FONT face='宋体' size='2' width='150'>");
                string sql = "select file1,file2 from table where file1='" + ds1.Tables[0].Rows[i][0].ToString() + "'";
                DataSet ds2 = GetDateSetBaySql(sql);//            sb.Append("<TABLE id='Table2' borderColor='#33ff99' cellSpacing='0' cellPadding='0' width='300' border='1'>");          
                for (int j = 0; j < ds2.Tables[0].Rows.Count; i++)
                {
                    sb.Append("<tr>");
                    sb.Append("<TD borderColor='#33cc99'><FONT face='宋体' size='2' width='150'>" + ds2.Tables[0].Rows[j][1].ToString() + "</FONT></TD>");
                    sb.Append("</tr>");            }            sb.Append("</table>");
                sb.Append("</TD>");
    sb.Append("</tr>");
    } sb.Append("</table>"); return sb.ToString();
    }
      

  7.   

    楼上的,for循环里执行这个语句吗!-_-
    DataSet ds2 = GetDateSetBaySql(sql);
      

  8.   

    en  这个方法比较笨,其实用一个DATASET就可以
      

  9.   

    谢谢各位,自己输出Table了,那个合并GridView的文章给了我启示.