【问题标题】:How to display data from multiple tables?如何显示来自多个表的数据?
【发布时间】:2014-04-01 17:59:07
【问题描述】:

我有两个不同的表:

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

【问题讨论】:

  • 数据读取器的每次迭代都会创建一个新的无序列表。

标签: c# asp.net join


【解决方案1】:

试试这个

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

你必须使用like

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

【讨论】:

  • 感谢您的回复。我确实知道使用连接,但我在通过在 html 代码中绑定列出它们时遇到问题,如上所示。
【解决方案2】:

我认为您在将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>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多