2012-10-15 69 views
0

我開發了一個由asp.net文本框和一個ListBox控件組成的表單,該表單由四個公司組成。 單擊提交按鈕時,表單將輸入的數據插入到數據庫中的兩個不同表中,並向相應的公司發送電子郵件 - 一切正常 ...除了嘗試選擇多個公司時 - 我的代碼只會提交所選的第一家公司,但會根據列表框中選定的公司數量插入第一家公司選定的數據。例如,如果我選擇兩家公司,則選擇的第一家公司會輸入兩次。 4次,如果我選擇所有四家公司 - 這是我的代碼/邏輯。 任何人都可以提供一些幫助,我做錯了什麼?我下面提供我的代碼:如何從列表框中插入多個值到SQL數據庫中

/* ** * ** * ** * ** * ** * **** * 的aspx: *

<p><b>Company Affected:</b><br /> 
<asp:ListBox 
    ID="lstcompanyAffected" 
    runat="server" 
    SelectionMode="Multiple"> 
    <asp:ListItem Text="Select Company" Value="SelectCompany" /> 
    <asp:ListItem Text="CompanyI" Value="CompanyI" /> 
    <asp:ListItem Text="CompanyII" Value="CompanyII" /> 
    <asp:ListItem Text="CompanyIII" Value="CompanyIII" /> 
    <asp:ListItem Text="CompanyIV" Value="CompanyIV" /> 
    </asp:ListBox></p> 

/* ** * ** * ** * aspx.cs *

lstcompanyAffected.SelectionMode = ListSelectionMode.Multiple; 
     foreach (ListItem item in locationAffected.Items) 
     { 
      if (item.Selected) { 
       if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyI")) 
       { 
        outageId.Text = "1"; 
        txtEmailAddresses.Text = "[email protected]"; 
       } 
       else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyII")) 
       { 
        outageId.Text = "2"; 
        txtEmailAddresses.Text = "[email protected]"; 
       } 
       else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyIII")) 
       { 
        outageId.Text = "3"; 
        txtEmailAddresses.Text = "[email protected]"; 
       } 
       else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyIV")) 
       { 
        outageId.Text = "4"; 
        txtEmailAddresses.Text = "[email protected]"; 
       } 
     //call insertOutage Function 
       InsertOuage(); 
       //call InsertOutageDetail Function 
       InsertOutageDetail(); 
       //call sendEmail Function 
       sendEmail(); 
      } 

     } // end foreach 

     panelSendEmail.Visible = false; 
     panelMailSent.Visible = true; 
    } 

回答

2

你的內部條件語句都基於 「lstcompanyAffected.SelectedValue」,每次for循環這始終是同一項目的重複。改變if語句來看看你的「item」循環變量。

+0

啊啊很好!他是正確的你的'如果'應該'item.Value ==「CompanyX」' – dgarbacz

+0

這使得,因爲,但是,是的,有一個但是,我仍然得到了和以前一樣的結果,這裏是代碼w /修改: – user1724708

+0

我改變:lstcompanyAffected.SelectedValue.ToString()==「CompanyX」在我的嵌套條件語句 - 下面的if(item.Selected) - 反映:item.Value ==「CompanyX」,它仍然呈現第一項選擇兩次。任何其他建議,我做錯了什麼?謝謝! ATTN:Evan Phillips – user1724708

相關問題