0

我试图让我的网站根据“国家”标准显示所有条目。这是我的代码:

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>

这是 Country.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)。关于如何制作三个和两个不同的记录显示的任何想法?

多谢你们!

4

2 回答 2

1

在 Country.aspx 中:
替换:

inner JOIN

和:

left JOIN

注意:您必须使用 Table2.ID 和 BlogEntryItems.BlogID 的一对一关系

于 2013-08-28T04:38:38.923 回答
1

我发现我所要做的就是删除 JOIN 子句。Country.aspx 所需的一切都在表 2 中。我从我网站的另一部分复制并粘贴了查询,并没有取出 JOIN 子句。

于 2013-08-28T04:33:47.053 回答