我的场景很简单,但我很难在编码中实现它。
我有两张名为电影和电影时间的桌子。我使用sql查询连接了两个表,并从datatable绑定到gridview。
电影表的结构是,
theatrename filmname
max Spiderman
well Godzilla
电影时间表的结构是,
theatrename time
max 10:00 am
max 01:00 pm
max 04:00 pm
well 11:30 am
我希望输出为
theatrename filmname time
10:00 am
max Spiderman 01:00 pm
04:00 pm
well Godzilla 11:30 am
我使用了这样的查询。
SELECT film.theatrename,film.filmname,filmtime.time FROM film left join filmtime on film.theatrename=filmtime.theatrename
通过使用此查询,我得到的结果如下,
theatrename filmname time
max Spiderman 10:00 am
max Spiderman 01:00 pm
max Spiderman 04:00 pm
well Godzilla 11:30 am
任何帮助对我都会更有帮助。提前致谢。
答案 0 :(得分:0)
如果剧院" max"有一部电影吗?你能在电影时间表中观看所有电影吗?
好吧它总会显示theatrename和filmname togheter的时间,但你可以先从电影表中选择电影名称和电影名称,然后在电影时间为每一行进行第二次选择,同时创建GridView你在哪里有theatrename ...
如果我告诉你我的意思,我认为这更容易。
public void FillGridview()
{
reader = Select * from film;
while (reader.Read())
{
reader2 = Select time from filmtime where theatername = reader["theatername"];
//add the filmname and the theatrename to the gridview-cells here
while (reader2.Read())
{
//add the times to the gridview-cell here (You can start a new line if you want a break with Environment.NewLine()
}
}
}
或者你只是将theatrename和filmname写入会话中,在gridview中的每一个新行上检查它是否在会话中,如果是,则不将它添加到新行的单元格中,如果没有将它添加到单元格中在行中。
或者在RowDataBound-Event查看它,并在标签/其中不止一次的时候制作标签。