0

奇妙な問題があります。私のプログラムでは、ユーザーはドロップダウン ボックスを操作し、[追加] ボタンを押して、選択した項目をリスト ボックスに入力します。最終的に、INSERT コマンドを使用して、これらのアイテムを MYSQL データベースに送信します。ユーザーが [追加] ボタンを押すと、項目が一般的なリストとリストボックスに追加され、ポストバックではすべて問題ないように見え、一日中項目を追加できます。ただし、[送信/保存] ボタンをクリックしてデータをサーバーに送信すると、ポストバックの原因に関係なく、リストはポストバックごとに追加されたデータを自分自身に何度もコピーし続けます。lstbox で結果を確認でき、List.count が増加していることがわかります。

page_load セクションにコードがありません。ただし、リストデータを保持するためにセッションプロパティを使用します。

public List<string> activityProp
    {
        get
        {
            if (HttpContext.Current.Session["codelist"] == null)
            {
                HttpContext.Current.Session["codelist"] = new List<string>();
            }
            return HttpContext.Current.Session["codelist"] as List<string>;
        }
        set
        {
            HttpContext.Current.Session["codelist"] = value;
    }

}

ボタンのコードは次のとおりです。sqlsetter() メソッドには、挿入文字列を含む一般的な SQL コマンド構造が含まれているだけです。このボタンからのみ起動されます。

protected void cmdSave_Click(object sender, EventArgs e)
    {
        //this will use the 'test' class to do a rule check on the day
        test therules = new test();
        bool comp = therules.check(dayProp, timeProp, activityProp);

        if (comp == true)
        {
            lblComp.Text = "You're ok!";
            lblComp.ForeColor = Color.Green;
            lblError.Text = "";
            SQLdaysetter();
        }
        else
        {   
            string zeerror = therules.getError();
            lblComp.Text = "You're not ok!";
            lblError.Text = "at " + zeerror;
            lblComp.ForeColor = Color.Red;
            lblError.ForeColor = Color.Red;
        }

    }

SQLのもの:

using (MySqlConnection conn = new    MySqlConnection(ConfigurationManager.ConnectionStrings["theConnectionString"].ConnectionString))
            {
                conn.Open();
                using (MySqlCommand cmdIns = new MySqlCommand(sqlstate, conn))
                {
                    cmdIns.ExecuteNonQuery();
                    cmdIns.Dispose();

                }
                conn.Close();
            }

たぶん、これは問題に関係していないかもしれませんが、どこを見ればいいのでしょうか?

4

1 に答える 1

1

OnInitイベントにいくつかのことがあり、ページがリロードされるたびに実行されていたようです。理由はまだわかりません

ジェイク、10分かかり、ページのライフサイクル(特にイベントセクション)を読んでください。それはあなたに将来の貴重な時間を節約するでしょう。

http://msdn.microsoft.com/en-us/library/ms178472.aspx

于 2012-04-25T22:33:18.750 に答える