从数据库顺序循环非顺序查询结果

时间:2013-01-11 00:06:13

标签: c# .net

我需要创建一个包含问题和答案的向导。 所以我有一个答案表,当我加载向导时,我希望得到第一个答案 标签和下拉菜单附近有可能的答案和下一个按钮。当我点击下一个按钮时,选择的答案和问题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

1 个答案:

答案 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(),而不是idi的行