首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示来自多个表的数据?

如何显示来自多个表的数据?
EN

Stack Overflow用户
提问于 2014-02-28 16:09:54
回答 2查看 62关注 0票数 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

我显示数据的方法:

代码语言:javascript
复制
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();
}

所有的电影院级别都应该用它所属的电影院的名称来列出。

编辑:

代码语言:javascript
复制
 <div id="display_cinema">
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
 </div>

我想把它列为,

电影院名称1

电影院级别名称1

电影院级别名称2

电影院名称2

电影院级别名称1

电影院级别名称2

相反,我得到的输出如下。

电影院名称1

电影院级别名称1

电影院名称1

电影院的名字叫2等等。

EN

回答 2

Stack Overflow用户

发布于 2014-02-28 16:22:48

尝尝这个

代码语言:javascript
复制
SELECT C.cinema_name,CL.cinema_level_name
FROM tbl_cinema C JOIN tbl_cinema_level ON
C.cinema_id = CL.cinema_id

你必须用像

代码语言:javascript
复制
 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"

加入Server

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

票数 1
EN

Stack Overflow用户

发布于 2014-02-28 17:08:35

我认为您在将formatted html tags附加到下面的StringBuilder时遇到了一些问题:

代码语言:javascript
复制
sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3>
               <ul><li>dr["cinema_level_name"].ToString()</li></ul></li>");
                       ^                                 ^              ^
                       |                                 |              |

尝试用以下语句替换:

代码语言:javascript
复制
sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3>" + 
              "<ul><li>" + dr["cinema_level_name"].ToString() + "</li></ul></li></ul>");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22100145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档