我需要创建一个包含问题和答案的向导。 所以我有一个答案表,当我加载向导时,我希望得到第一个答案 标签和下拉菜单附近有可能的答案和下一个按钮。当我点击下一个按钮时,选择的答案和问题ID保存在数据库中,第二个问题被加载并继续这样,直到所有问题都完成。
最近我只在coldfusion工作,在那里我可以循环查询而且简单但在C#中我不知道该怎么做。
for (int i = 0; i < length; i++)
{
using (SqlConnection sqlConn = new SqlConnection(connstring))
{
sqlConn.Open();
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "dbo.GetFurnizori";
sqlCmd.Parameters.AddWithValue("@p_id",i);
sqlCmd.Connection = sqlConn;
DataTable dat = new DataTable();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = sqlCmd;
dat.Fill(dataSet1, "questions");
label1.DataBindings.Add("Text", dataSet1, "question");
}
}
问题在于我选择i加1,因为id并不总是1,2,3,4也许它们是5,9,11
答案 0 :(得分:1)
如果您要查询SQL Server,请在存储过程中向查询添加ROW_NUMBER() OVER()
(您必须阅读它:http://msdn.microsoft.com/en-us/library/ms186734.aspx)。这将为返回的每一行提供一个序列号(1,2,3等)。这可能会有所帮助,因为您不必依赖id
。您可以将i
(并继续i++
)传递到proc中,并让proc在查询中找到ROW_NUMBER()
,而不是id
为i
的行