Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示多个表中的数据?_C#_Asp.net_Join - Fatal编程技术网

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

C# 如何显示多个表中的数据?,c#,asp.net,join,C#,Asp.net,Join,我有两张不同的桌子: tbl\u电影院 cinema\u id cinema\u name 电影院地址 cinema\u电话 cinemail 及 tbl\u电影院级别 cinema\u level\u id cinema\u level\u name cinema\u id 我如何显示电影院\名称和电影院\级别\名称 我的数据显示方法: public void displayCinema() { Utility ut = new Utility(); SqlConn

我有两张不同的桌子:

tbl\u电影院

  • cinema\u id
  • cinema\u name
  • 电影院地址
  • cinema\u电话
  • cinemail

tbl\u电影院级别

  • cinema\u level\u id
  • cinema\u level\u name
  • cinema\u id
我如何显示
电影院\名称
电影院\级别\名称


我的数据显示方法:

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();
}
public void displayCinema()
{
实用工具ut=新实用工具();
SqlConnection con=ut.openconnection();
string query=“选择tbl_cinema.cinema_name,tbl_cinema_level.cinema_level\u name从tbl_cinema左侧外部连接tbl_cinema_level.cinema_id=tbl_cinema_level.cinema_id组,按tbl_cinema.cinema_name,tbl_cinema_cinema_level_.cinema_name;显示”;
SqlCommand cmd=新的SqlCommand(查询,con);
SqlDataReader dr=cmd.ExecuteReader();
StringBuilder sb=新的StringBuilder();
while(dr.Read())
{
某人追加(“
  • ”+dr[“电影院名称”]。ToString()+”
    • “+dr[“电影院级别名称”]。ToString()+”
  • ”; } 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等等。

试试这个

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"

在SQL中,联接用于根据数据从两个或多个表中获取数据 表中某些列之间的关系。在世界大部分地区 我们将使用第一个表的主键和 二级表通过使用此关系从表中获取数据 可以减少每个表中的数据重复


我认为您在将
格式化html标记添加到下面的
StringBuilder
时遇到了一些问题:

sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3>
               <ul><li>dr["cinema_level_name"].ToString()</li></ul></li>");
                       ^                                 ^              ^
                       |                                 |              |
sb.Append(“
  • ”+dr[“电影院名称”]。ToString()+”
    • dr[“电影院级别名称”]。ToString()
  • ”; ^ ^ ^ | | |
尝试替换为以下语句:

sb.Append("<ul><li><h3>" + dr["cinema_name"].ToString() + "</h3>" + 
              "<ul><li>" + dr["cinema_level_name"].ToString() + "</li></ul></li></ul>");
sb.Append(“
  • ”+dr[“电影院名称”]。ToString()+”+ “
    • ”+dr[“电影院级别名称”]。ToString()+”
”;
thx回复。我确实知道如何使用连接,但在上面所示的html代码中通过绑定列出连接时遇到了问题。通过datareader的每次迭代都会创建一个新的无序列表。