如何显示多个表中的数据?

时间:2014-02-28 16:09:54

标签: c# asp.net join

我有两个不同的表:

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 等等。

2 个答案:

答案 0 :(得分: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中,连接用于从两个或多个表中获取数据   表中某些列之间的关系。在大多数   我们将使用第一个表的主键和外键的情况   使用这种关系从表中获取数据的辅助表   可以减少每个表中的数据重复。

答案 1 :(得分: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>");