0

根据下面的代码,我曾经使用以下两行代码根据 QuestionId 显示问题及其相关的多项选择选项:

<asp:Label ID="Label3" runat="server" Font-Bold="True" Text='<%# Eval("QuestionID") %>'></asp:Label>
<strong>)</strong>
<asp:Label ID="Label2" runat="server" Font-Bold="True" Text='<%# Eval("Question") %>'></asp:Label></td>

一切都会正确显示。

问题在于问题的顺序不正确。

例如,有几个调查;员工调查、薪酬调查、培训调查等

使用QuestionId,如果我根据员工调查创建一个问题,第一个问题是questionId#1,第二个问题是questionId#2。

如果我决定根据薪资调查创建问题,第一个问题将从questionId#3 开始,而不是从questionId#1 重新开始,依此类推。

为了让每个问题都能从 #1 开始调查,我添加了另一个名为questionOrder.

这允许每个调查从 #1 开始其问题。

我可以用这个存储过程来完成这个:

CREATE PROCEDURE [dbo].[addQuestion](@surveyID INT, @question VARCHAR(255), @AnswerType CHAR(1), @CorrectAnswer NVARCHAR(50))
AS
DECLARE @qnum INT

SELECT @qnum = ISNULL(MAX(QuestionOrder),0)+1
FROM SurveyQuestions WHERE SurveyID = @surveyID

INSERT INTO SurveyQuestions(SurveyID, Question, AnswerType,CorrectAnswer,QuestionOrder)
VALUES (@SurveyID, @Question, @AnswerType,@CorrectAnswer,@qnum)

然后我在我的标记上使用它:

<asp:Label ID="Label3" runat="server" Font-Bold="True" Text='<%# Eval("QuestionOrder") %>'></asp:Label>
<strong>)</strong>
<asp:Label ID="Label2" runat="server" Font-Bold="True" Text='<%# Eval("Question") %>'></asp:Label></td>

问题是现在只显示问题而不显示多项选择。

你知道我需要修改什么来解决这个问题吗?

我不确定这是 SQL 问题还是 .net 问题。

如果被问到,我会发布额外的代码。

非常感谢提前

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
    SelectCommand="SELECT * FROM SurveyQuestions where surveyId = @SurveyId">
   <SelectParameters>
   <asp:SessionParameter SessionField="SurveyId" Type="Int32" Name="SurveyId" DefaultValue="0" />
  </SelectParameters>
</asp:SqlDataSource>
     <asp:SqlDataSource ID="SQLChoicesDataSouce" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
    SelectCommand="SELECT Title From Survey WHERE SurveyId = @SurveyId">
   <SelectParameters>
   <asp:SessionParameter SessionField="SurveyId" Type="Int32" Name="SurveyId" DefaultValue="0" />
  </SelectParameters>
</asp:SqlDataSource>
4

0 回答 0