簡體   English   中英

如何將ListBox中的多個值插入SQL數據庫

[英]How do I insert multiple values from a ListBox into SQL Database

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

/ * ** * ** * ** * ** * ** * **** * 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 = "CompanyI@aol.com";
                }
                else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyII"))
                {
                    outageId.Text = "2";
                    txtEmailAddresses.Text = "CompanyII@aol.com";
                }
                else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyIII"))
                {
                    outageId.Text = "3";
                    txtEmailAddresses.Text = "CompanyIII@aol.com";
                }
                else if ((lstcompanyAffected.SelectedValue.ToString() == "CompanyIV"))
                {
                    outageId.Text = "4";
                    txtEmailAddresses.Text = "CompanyIV@aol.com";
                }
         //call insertOutage Function
                InsertOuage();
                //call InsertOutageDetail Function
                InsertOutageDetail();
                //call sendEmail Function
                sendEmail();
            }

        } // end foreach

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

您的內部條件語句基於“lstcompanyAffected.SelectedValue”,每次for循環重復時,它始終是相同的項。 更改if語句以查看“item”循環變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM