0

ウィザード コントロールを使用して、ユーザーに複数の手順を実行させています。ステップ 1 から開始しますが、「はい」または「いいえ」(ラジオ ボタン) と答えると、いくつかのステップをスキップすることがあります。たとえば、いくつかのステップの最後に「問題は解決しましたか?」という質問が表示されます。はいまたはいいえのラジオボタンの選択肢があります。答えが「はい」の場合は、最後のステップに進んで完了してください。答えが「いいえ」の場合、次のステップに進みます。

私の問題は、データベース内のテーブル テストのすべての手順から結果を取得することです。

        string constring = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ClientMonitorDevices"].ConnectionString;
        SqlConnection conn = new SqlConnection(constring);
        SqlCommand cmd = new SqlCommand();

        cmd = conn.CreateCommand();
        cmd.CommandText = @"INSERT INTO test (siteid, hotelname, step1, step2)
                            VALUES (@siteid, @hotelname, @step1, @step2)";

        cmd.Parameters.AddWithValue("@siteid", siteid);
        cmd.Parameters.AddWithValue("@hotelname", hotelname);

        int activeStep = Wizard1.ActiveStepIndex;

        switch (activeStep)
        {
            case 1:
                if (step1_yes.Checked)
                {
                    step1 = "Device Can Detect Network with a Signal Strength of 50% or Greater";
                    Wizard1.ActiveStepIndex = 2;
                }
                else if (step1_no.Checked)
                {
                    step1 = "Device Cannot Detect Network with a Signal Strength of 50% or Greater";
                    Wizard1.ActiveStepIndex = 16;
                }
                else
                {
                    e.Cancel = true;
                    gen.MessagBox(this.Page, "Please choose Yes or No", "Please choose Yes or No");
                }
                cmd.Parameters.AddWithValue("@step1", step1);
                break;
            case 2:
                if (step2_unable.Checked)
                {
                    step2 = "Unable to Join Network";
                    Wizard1.ActiveStepIndex = 3;
                }
                else if (step2_unidentified.Checked)
                {
                    step2 = "Connect to Unidentified Network";
                    Wizard1.ActiveStepIndex = 7;
                }
                else if (step2_internet.Checked)
                {
                    step2 = "Connected (Internet Access)";
                    Wizard1.ActiveStepIndex = 11;
                }
                else if (step2_local.Checked)
                {
                    step2 = "Connected Local Only (No Internet Access)";
                    Wizard1.ActiveStepIndex = 15;
                }
                else
                {
                    e.Cancel = true;
                    gen.MessagBox(this.Page, "Please Choose One of the Options", "Please Choose One of the Options");
                }
                cmd.Parameters.AddWithValue("@step2", step2);
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                break;

私が得るエラーは、スカラー変数 "@step1" を宣言する必要があります。step1は範囲外であるか、それが私の考えです。ストアドプロシージャを試しましたが、それもうまくいきませんでした。

別の試みは update ステートメントを使用することでしたが、私が遭遇した問題は、インデックス可能な ID 列 (インデックス) を取得し、挿入ごとに 1 ずつインクリメントすることです。誰かが何かアイデアを持っているなら、ぜひ私に知らせてください。私はこれに約2週間取り組んできましたが、役に立ちませんでした。

4

1 に答える 1