2014-02-28 117 views
1

我有两个不同的表:如何显示来自多个表的数据?

tbl_cinema

  • cinema_id
  • cinema_name
  • cinema_address
  • cinema_phone
  • cinema_email

tbl_cinema_level

  • cinema_level_id
  • cinema_level_name
  • cinema_id

我怎样才能显示cinema_namecinema_level_name


我用于显示数据的方法:

public void displayCinema() 
{ 
    Utility ut = new Utility(); 
    SqlConnection con = ut.openconnection(); 
    string query = "select tbl_cinema.cinema_name, tbl_cinema_level.cinema_level_name from tbl_cinema LEFT OUTER JOIN tbl_cinema_level on tbl_cinema.cinema_id=tbl_cinema_level.cinema_id group by tbl_cinema.cinema_name, tbl_cinema_level.cinema_level_name;"; 
    SqlCommand cmd = new SqlCommand(query,con); 
    SqlDataReader dr = cmd.ExecuteReader(); 
    StringBuilder sb = new StringBuilder(); 
    while (dr.Read()) 
    { 
     sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3> 
        <ul><li>" + dr["cinema_level_name"].ToString() + "</li></ul></li>"); 
    } 
    Literal1.Text = sb.ToString(); 
} 

所有影院水平应在其所属的电影名称上市。

编辑:

<div id="display_cinema"> 
     <asp:Literal ID="Literal1" runat="server"></asp:Literal> 
</div> 

我想将其列为,,

电影名称1
影院级别名称1
影院级别名称2

电影院名称2
影院级别名称1
影院级别名称2

而是我得到的输出如下..

电影名称1
影院级别名称1

电影名称1
影院级别名称2等等..

+0

通过DataReader的每次迭代将创建一个新的无序列表。 –

回答

1

试试这个

SELECT C.cinema_name,CL.cinema_level_name 
FROM tbl_cinema C JOIN tbl_cinema_level ON 
C.cinema_id = CL.cinema_id 

你必须使用像

string query = "SELECT C.cinema_name,CL.cinema_level_name FROM tbl_cinema C JOIN tbl_cinema_level ON C.cinema_id = CL.cinema_id" 

JOIN in SQL Server

在SQL连接被用来获取基于之间 关系从两个或多个表中的数据表中的一些列。在大多数 的情况下,我们将使用第一表的主键和 辅助表的外键,通过使用这种关系从表中获取数据,我们使用 可以减少每个表中的数据重复。

+0

thx回复。我知道关于使用连接,但我一直有问题,而通过绑定在HTML代码中列出他们,如上所示。 –

1

我觉得你有一些问题,同时要附加的formatted html tags以下StringBuilder

sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3> 
       <ul><li>dr["cinema_level_name"].ToString()</li></ul></li>"); 
        ^        ^   ^
         |         |    | 

尝试用下面的语句来代替:

sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3>" + 
       "<ul><li>" + dr["cinema_level_name"].ToString() + "</li></ul></li></ul>"); 
+0

对不起,这是错字。现在编辑.. –

相关问题