2013-05-22 64 views
0

我有一个看起来像这样的SQL Server表:列表用户可以通过类别

enter image description here

我需要像这样显示这样的数据:

  • 马克

  • 山姆
  • 吉姆

  • 约翰

西

  • 比尔

我并不需要它们在列表格式只是一个例子。我只需要能够通过分支来分开它们。根据我的理解,我需要使用DO WHILE语句?我只是不知道如何制定正确的代码。这是我的代码到目前为止。

ASPX页面

<div class="row"> 
    <div class="span12"> 
     <% 
      System.Data.OleDb.OleDbConnection pcn; 
      System.Data.OleDb.OleDbCommand pcm; 
      System.Data.OleDb.OleDbDataReader prs; 

      pcn = new System.Data.OleDb.OleDbConnection(""); 
      pcm = new System.Data.OleDb.OleDbCommand(); 
      pcn.Open(); 
      pcm.Connection = pcn; 

      var Sql = "SELECT * from Locations"; 

      pcm.CommandText = Sql; 
      prs = pcm.ExecuteReader(); 
      var rowcount = 0; 

      while (prs.Read()) 
      { 
       rowcount++; 
     %> 

      <h4><%= prs["Branch"].ToString() %></h4> 
      <%= prs["Name"].ToString() %> 

     <% 
      } 
      prs.Close(); 
      pcn.Close(); 
     %> 

谢谢你的时间提前协助我!

回答

1

是酸第二个想法是通过分支简单 首先排序位置,然后做什么,他说:像

 var Sql = "SELECT * from Locations Order by Branch"; 

     pcm.CommandText = Sql; 
     prs = pcm.ExecuteReader(); 
     var rowcount = 0; 
     var prvBranch=""; 

     while (prs.Read()) 
     { 
      rowcount++;  
     if(prvBranch!=prs["Branch"].ToString()) 
     {%> 
      <h4><%= prs["Branch"].ToString() %></h4> 
     <%} %> 
     <%= prs["Name"].ToString() %> 

    <% 
     prvBranch = prs["Branch"].ToString(); 

     } 
     prs.Close(); 
     pcn.Close(); 
    %> 
+0

这工作,谢谢! – techora

0

在你的SQL查询中,你应该按分支分组。使SQL语句是这样的:

SELECT * FROM Locations 
GROUP BY Branch 
+0

这样做确实将树枝分开,但看起来并不完全正确。例如现在我有:东 - 约翰,东 - 乔,而不是东 - 约翰乔。 – techora

+0

@kcray好的,现在我明白你在做什么了。我不认为有一种方法可以让SQL为每个组输出一次分支,所以我认为你最好的选择是检查每个tabel行的代码,如果分支与前一行相同。 – AcId

0

你需要更新SQL查询来获取从数据库所需的输出

相关问题