私は奇妙な問題があります。私のプログラムでは、ユーザーがドロップダウンボックスを操作し、ADDボタンを押して選択した項目をリストボックスに入力します。結局、私はこれらの項目をINSERTコマンドでMYSQLデータベースに送ります。ユーザーがADDボタンを押すと、アイテムは一般的なリストとリストボックスに追加され、ポストバックではすべて問題なく表示されます。しかし、送信/保存ボタンを押してサーバーにデータを送信すると、リストはポストバックの原因に関係なく、すべてのポストバックで追加されたデータを繰り返しコピーし続けます。リストボックスに結果が表示され、List.countが上がっているのがわかります。ASP.netでポストバック時のC#リストのインクリメント
私の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();
}
多分問題に関連していないこのようなものは、任意のアイデアを見て?
アップデート:私はのOnInitイベントでいくつかのものを持っていたと明らかに彼らはページをリロードするたびに実行なりました。私はまだ、なぜ私はSQLの挿入ボタンをヒットしたそれは特にそれをした理由はわからない。私はpage_loadに私の問題を引き起こし、if(page.ispostback)の後ろに置くそれらのメソッドを移動しました。問題は解決されたようだ、atm。 –