创建一个电话目录,如在ASP.NET中列出

时间:2013-10-27 11:42:36

标签: c# asp.net sql data-binding oracle10g

我通过以下方式在表格中提供了一些联系人数据。

Contact_Name              Contact Details

Acting Generals Office      ABCD
BlackBerryOffice                A1B1
BBM Help                        X1Y1
Customer Care               A2B2
D_Link Routers              A3B3

现在在一个页面中,我必须以这种方式在我的 ASP.NET页面中显示数据 - (每个条目的第一个字符以及具有该字符的所有条目)

A

代理将军办公室

BlackBerryOffice BBM帮助

C

客户服务

d

D_Link路由器

有关详细信息,请参阅下图。 enter image description here

单击代理常规办公室,BlackBerryOffice,客户服务中心,D_Link路由器将重定向到新页面,其中将显示相应的contact_details。 (通过点击代理将军办公室将会打开)

Acting Generals Office      ABCD

请帮助我。

1 个答案:

答案 0 :(得分:0)

您能提供想要获得的样本输出吗?因为通过查看你的问题很难说出你真正需要什么。现在,尝试这个并提供反馈,如果它是你想要的:

CREATE TABLE contacts (
  contact_name VARCHAR2(40),
  contact_details VARCHAR2(20)
);

INSERT INTO contacts VALUES ('Acting Generals Office', 'ABCD');
INSERT INTO contacts VALUES ('BlackBerryOffice', 'A1B1');
INSERT INTO contacts VALUES ('Customer Care', 'A2B2');
INSERT INTO contacts VALUES ('D_Link Routers', 'A3B3');

COMMIT;

-- show all letters, even when there are no contacts belonging to any of them
WITH letters AS (
  SELECT CHR(65 + level - 1) AS letter
    FROM dual
  CONNECT BY level <= ASCII('Z') - ASCII('A') + 1
)
SELECT lt.letter, ct.contact_name
  FROM letters lt
    LEFT JOIN contacts ct ON (lt.letter = UPPER(SUBSTR(ct.contact_name, 1, 1)))
ORDER BY 1, 2
;

Output:

LETTER CONTACT_NAME                           
------ ----------------------------------------
A      Acting Generals Office                   
B      BlackBerryOffice                         
C      Customer Care                            
D      D_Link Routers                           
E                                               
F                                               
.
.
.
Z           

-- Output only those letters where there are associated contacts

SELECT SUBSTR(contact_name, 1, 1), contact_name
  FROM contacts
ORDER BY 1, 2
;

Output:

SUBSTR(CONTACT_NAME,1,1) CONTACT_NAME                           
------------------------ ----------------------------------------
A                        Acting Generals Office                   
B                        BlackBerryOffice                         
C                        Customer Care                            
D                        D_Link Routers                           

尝试使用SQLFiddle: SQLFiddle example