我正在尝试让我的网站根据“国家/地区”标准显示所有条目。这是我的代码:
有关Default.aspx的代码:
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TravelJoansDB.accdb"
SelectCommand="SELECT Country, COUNT (*) AS N FROM [Table2] GROUP BY Country">
</asp:AccessDataSource>
<asp:DataList ID="DataList1" DataSourceID="AccessDataSource1" runat="server">
<ItemStyle VerticalAlign="Top" CssClass="countriesList"/>
<ItemTemplate>
<asp:HyperLink ID="Hyperlink1" runat="server" NavigateUrl='<%# "~/Countries.aspx?Country="+ Eval("Country")%>'>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Country") %>' /> (<asp:Label ID="Label1" runat="server" Text='<%# Eval("N") %>' />)
</asp:HyperLink>
</ItemTemplate>
</asp:DataList>
以下是Countries.aspx的代码:
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TravelJoansDB.accdb"
SelectCommand="SELECT * FROM Table2 INNER JOIN [BlogEntryItems] ON Table2.ID=BlogEntryItems.BlogID WHERE Country=@Country" >
<SelectParameters>
<asp:QueryStringParameter Name="Country" QueryStringField="Country" />
</SelectParameters>
</asp:AccessDataSource>
<asp:DataList ID="DataList1" DataSourceID="AccessDataSource1"
runat="server" ItemStyle-CssClass="picTableStyle"
DataKeyField="Country">
<ItemStyle></ItemStyle>
<ItemTemplate>
<br /><br />
<table>
<tr>
<td>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#"~/Places.aspx?ID="+Eval("ID")%>'>
<asp:Label ID="Label2" class="picTitleStyle" runat="server" Text='<%# Eval("BlogTitle") %>' /><br /></asp:HyperLink>
<asp:Label ID="Label3" class="picBodyText" runat="server" Text='<%# Eval("TravelDate", "{0:MMMMMMMMM dd, yyyy}") %>' /><br /><br />
<asp:Label ID="Label4" class="picBodyText" runat="server" Text='<%# Eval("PicText") %>' />
</td>
</tr>
<tr>
<td>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"~/Places.aspx?ID="+Eval("ID")%>'>
<asp:Image ID="Image1" runat="server"
BorderWidth="1px"
ImageUrl='<%# "PlaceImages/" + Eval("Image") %>' />
</asp:HyperLink>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
我的问题是它在数据库中显示相同的记录,但很多博客帖子都是关于该国家的,即我有三篇关于意大利的博客文章和两篇关于土耳其的博客文章。当我点击意大利时,我得到三个相同的记录(由于某种原因,它选择了4号记录,这是中间记录)。如果我选择土耳其,它会显示两个相同的记录(记录编号1)。关于如何制作三个和两个不同记录的任何想法都显示出来了?
谢谢你们!
答案 0 :(得分:1)
我发现我所要做的就是删除JOIN子句。 Countries.aspx所需的一切都在表2中。我从我网站的另一部分复制并粘贴了查询,但没有取出JOIN条款。
答案 1 :(得分:1)
在Countries.aspx中:
替换:
inner JOIN
with:
left JOIN
注意:您必须使用Table2.ID和BlogEntryItems.BlogID的一对一关系