如何使这个DataList显示发送给用户的测验?

时间:2012-03-11 09:07:59

标签: asp.net sql sql-server-2008-r2

我正在开发一个内联网Web应用程序,它是一个测验引擎。我有一个DataList,它显示了系统中可用的测验,并显示了每个测验的简短描述。现在,此DataList显示数据库中的所有测验。我想要的是以下内容:因为我有以下数据库设计:

测验表:QuizID,标题,描述,IsSent

* QuizID是该表中的主键。 IsSent是一个标志/布尔值,如果测验被发送给用户,则为真。*

我不想在数据库中显示所有可用的测验,而是让这个DataList只显示测验,当它从上次发送测验开始发送给用户时。 这与我现在使用的查询有关吗?

我的查询是:

SELECT [Title], [Description], [QuizID] FROM [Quiz]

如果是,请你帮我改一下吗?

我的ASP.NET代码:

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource2">
                                <ItemTemplate>
                                    <asp:HyperLink
                                            ID="HyperLink1" runat="server" NavigateUrl='<%# "StartQuiz.aspx?testid=" + Eval("QuizID") %>'
                                            Text='<%# Eval("Title") %>'></asp:HyperLink><br />
                                    &nbsp;<asp:Label
                                        ID="DescriptionLabel" runat="server" CssClass="generaltext" Text='<%# Eval("Description") %>'></asp:Label>&nbsp;<br />
                                    <br />
                                </ItemTemplate>
                            </asp:DataList>
                <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
                                SelectCommand="SELECT [Title], [Description], [QuizID] FROM [Quiz]">
                </asp:SqlDataSource>

1 个答案:

答案 0 :(得分:1)

  

我想让这个DataList在发送时只显示测验   用户通过从上次发送测验开始

  • 这取决于您如何跟踪数据库中的“上次发送测验” 表
  • 您可以按降序检查按ID排序的上次发送的测验
  

SELECT [Title],[Description],[QuizID],[IsSent] FROM [Quiz]在哪里   [IsSent] = [QuizID] DESC的1个订单

  • 您还可以通过在表格中添加一个名为“LastModified”的新列来跟踪上次发送的评估。保留日期时间戳,以便您可以跟踪上次从查询发送的测验
  

SELECT [Title],[Description],[QuizID],[IsSent],[LastUpdated] FROM [Quiz]其中   [IsSent] = [LastUpdated] DESC的1个订单