Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按类别列出用户_C#_Asp.net_Sql Server_Do While - Fatal编程技术网

C# 按类别列出用户

C# 按类别列出用户,c#,asp.net,sql-server,do-while,C#,Asp.net,Sql Server,Do While,我有一个SQL Server表,如下所示: 我需要这样显示这些数据: 北部 标记 南部 萨姆 吉姆 东部 约翰 乔 西部 账单 我不一定需要他们的列表格式,这只是一个例子。我只需要能够将它们按分支分开。据我所知,我需要使用DO WHILE语句?我只是不知道如何制订适当的守则。这是到目前为止我的代码 ASPX页 <div class="row"> <div class="span12"> <% Sys

我有一个SQL Server表,如下所示:

我需要这样显示这些数据:

北部

  • 标记
南部

  • 萨姆
  • 吉姆
东部

  • 约翰
西部

  • 账单
我不一定需要他们的列表格式,这只是一个例子。我只需要能够将它们按分支分开。据我所知,我需要使用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();
        %>


提前感谢您对我的帮助

在SQL查询中,应该按分支分组。使SQL语句类似于:

SELECT * FROM Locations
GROUP BY Branch

您需要更新sql查询以从数据库获得所需的输出

是的,第二个想法最简单 首先按分支对位置排序,然后按他说的做

        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();
    %>
var Sql=“按分支机构从位置顺序选择*”;
pcm.CommandText=Sql;
prs=pcm.ExecuteReader();
var rowcount=0;
var prvBranch=“”;
while(prs.Read())
{
行计数++;
if(prvBranch!=prs[“分支”].ToString())
{%>

您是否尝试过使用透视表?

这样做确实会将分支分开,但看起来并不完全正确。例如,现在我有:EAST-John,EAST-Joe,而不是EAST-John Joe。@kcray好的,现在我知道你想做什么了。我认为没有办法让SQL为每个组只输出分支一次,所以我认为最好的选择是在代码中进行检查对于每个选项卡行,如果分支与上一个相同。