-3

質問と回答を含むウィザードを作成する必要があります。だから私は答えのあるテーブルを持っていて、ウィザードをロードするときに、最初の答えをラベルとして、可能な答えと次のボタンを含むドロップダウンの近くにしたい.次のボタンをクリックすると、選択された答えと質問IDがデータベースに保存され、2番目の質問はロードされ、すべての質問が終了するまでこのように続けます。

最近、私は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");
            }                
          }

問題は、IDが常に1、2、3、4であるとは限らないため、1ずつインクリメントできないことです。おそらく5、9、11です。

4

1 に答える 1

1

SQL Server に対してクエリをROW_NUMBER() OVER()実行する場合は、ストアド プロシージャ内のクエリに a を追加します ( http://msdn.microsoft.com/en-us/library/ms186734.aspxを参照する必要があります)。これにより、返された各行の連番 (1、2、3 など) が得られます。に頼る必要がないので、それは役立つかもしれませんid。proc に渡すi(そして を続行するi++) ことができ、proc は、 whoROW_NUMBER()ではなく、クエリの行を見つけることができidますi

于 2013-01-11T00:54:23.830 に答える