我有两个不同的桌子:
tbl_cinema
cinema_idcinema_namecinema_addresscinema_phonecinema_email和
tbl_cinema_level
cinema_level_idcinema_level_namecinema_id如何显示cinema_name和cinema_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等等。
发布于 2014-02-28 16:22:48
尝尝这个
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"加入Server
在SQL中,联接用于根据表中某些列之间的关系从两个或多个表中获取数据。在大多数情况下,我们将使用第一表的主键和辅助表的外键从表中获取数据,通过这种关系,我们可以减少每个表中数据的重复。
发布于 2014-02-28 17:08:35
我认为您在将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>");https://stackoverflow.com/questions/22100145
复制相似问题