【发布时间】:2011-12-29 20:11:37
【问题描述】:
如果这个问题的答案似乎很明显,我深表歉意,但我自己无法弄清楚。 我正在构建一个 Web 应用程序,并且已经到了需要从数据库中获取数据并将其显示在数据列表中的阶段。
我的目标是在我的数据列表中输出以下输出:
问题 1 名称
答案 1
答案 2
...
答案 8
问题 2 名称
答案 1
答案 2
...
答案 8
问题 3 名称
答案 1
....
你明白了。 我已经编写了一个基本数据列表,从问题(下面的代码)开始,它在一定程度上有效,但是我不太确定如何获取答案,然后重复该过程,直到获取所有数据。 这是代码。 确认.aspx
<asp:DataList runat="server" id="dgQuestionnaire">
<ItemTemplate>
<asp:Label ID="Name" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "QuestionText") %>' />
</ItemTemplate>
</asp:DataList>
确认.aspx.cs
public partial class Confirm_Questionnaire : System.Web.UI.Page
{
OsqarSQL GetData;
DataTable DT;
protected void Page_Load(object sender, EventArgs e)
{
GetData = new OsqarSQL();
int questionnaireId = (int)Session["QuestionnaireID"];
string questionnaireName = (string)Session["QuestionnaireName"];
ReturnQnrName.Text = questionnaireName + " (ID: " + questionnaireId.ToString() + ")";
int questionId = GetData.GetQuestionID(questionnaireId);
DT = GetData.GetQuestionName(questionnaireId);
dgQuestionnaire.DataSource = DT;
dgQuestionnaire.DataBind();
} // End Page_Load
} // Emd Class Confirm_Questionnaire
Questionnaire.cs (App_Code)
public class OsqarSQL
{
private string _productConnectionString;
private SqlConnection _productConn;
public OsqarSQL()
{
_productConn = new SqlConnection();
_productConnectionString += "data source=mssql.database.co.uk; Initial Catalog=devworks_oscar;User ID=me;Password=you";
_productConn.ConnectionString = _productConnectionString;
}
public DataTable GetQuestionName(int QuestionnaireID)
{
string returnValue = string.Empty;
SqlCommand myCommand = new SqlCommand("GetQuestion", _productConn);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
myCommand.Parameters[0].Value = QuestionnaireID;
return createDataTable(getData(myCommand));
}
public DataTable GetAnswerTitle(int QuestionnaireID)
{
string returnValue = string.Empty;
SqlCommand myCommand = new SqlCommand("GetAnswer", _productConn);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
myCommand.Parameters[0].Value = QuestionnaireID;
return createDataTable(getData(myCommand));
}
我知道我遗漏了一些东西,但我不确定要包含哪些内容才能显示每个问题的答案。
谢谢 伊迪尼,
【问题讨论】:
-
好问题,以及结构良好的代码。您可能可以删除您的数据访问层代码,因为它的功能是隐含的,不是问题的直接部分,并且会使问题比它需要的长得多。