2012-12-05 173 views
4

我有一個循環遍歷checkboxlist中的選擇。問題是循環觸發插入語句兩次爲每個選擇。所以如果用戶選中一個框,它會插入2行。如果用戶選擇3個框,則插入6行等等。我如何確保每次選擇只觸發一次插入?循環觸發插入語句兩次

protected void btn_test_Click(object sender, EventArgs e) { 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandText = "Insert into t_ap_line_setup (line,date) values (@line,getdate())"; 
    cmd.Connection = this.sqlConnection1; 
    this.sqlConnection1.Open(); 
    foreach (ListItem li in lines_list.Items) { 
     if (li.Selected == true) { 
      cmd.Parameters.Clear(); 
      cmd.Parameters.AddWithValue("@line", li.Text); 
      cmd.ExecuteNonQuery(); 
     } 
    } 
    this.sqlConnection1.Close(); 
} 
+0

當你運行代碼時,'lines_list.Items'的計數是多少? – MyCodeSucks

+10

看起來不像循環運行兩次。我懷疑你點擊處理程序是發射兩次。也許重複的事件訂閱,或者其他。 – vcsjones

+0

只是嘗試'如果(li.Selected)'不'如果(li.Selected == true)' – sajanyamaha

回答

1

看起來不像循環運行兩次。由於重複的事​​件訂閱,我懷疑你的點擊處理程序發射了兩次。

+0

好搭檔哥們! – briskovich