我有一個奇怪的問題。在我的程序中,用戶操作下拉框並按下ADD按鈕以使用所選項目填充列表框。最後,我使用INSERT命令將這些項目發送到MYSQL數據庫。當用戶點擊添加按鈕時,項目被添加到通用列表和列表框,並在回發一切似乎很好,我可以整天添加的東西。但是,當我點擊「提交/保存」按鈕時,要將數據發送到服務器,無論發生什麼原因,列表都會在每次回發時不斷將所添加的數據一遍又一遍地複製到自身。我可以在lstbox中看到結果,我可以看到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)if後面。問題似乎解決了,atm。 – 2012-04-25 21:48:34