Click here to Skip to main content
15,910,877 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hai,

I have a listbox control that having multiple selections.It is populating the values from sql table.In the below code "lstPrimaryImpactedArea" is listbox name.If we select multiple items it should be inserted into sql table.It is working in UI.But if we use dataaccesslayer how we can solve this.

<tr>
              <td align="right">


                <asp:Label ID="lblPrimaryImpactedArea" runat="server" Text="Primary Impact Area"></asp:Label>
              </td>
              <td>
                 <asp:ListBox ID="lstPrimaryImpactedArea" runat="server" SelectionMode="Multiple">

                  </asp:ListBox>
              </td>

          </tr>

foreach (ListItem item in lstPrimaryImpactedArea.Items)
       {

           if (item.Selected)
           {

               try
               {
                   lblMessage.Text = lblMessage.Text  + item.Text+",";
                   cmd.Parameters[
"@primaryimpactedarea"].Value = lblMessage.Text;
                  // string s;
                  // string str = item.Text + "," ;
                  // cmd.Parameters[
                  //  "@primaryimpactedarea"].Value = str;


               }
               catch (Exception ex)
               {

               }
           }
       }

Thanks in advance

[EDIT - Data Access Layer Code]
C#
SqlCommand dCmd = new SqlCommand("InsertBugsdata", conn);
            dCmd.CommandType = CommandType.StoredProcedure;
            try
            {
                dCmd.Parameters.AddWithValue("@bugnumber", bugs.BugNumber);
                dCmd.Parameters.AddWithValue("@publishtopartner", bugs.PublishToPartner);
                dCmd.Parameters.AddWithValue("@impactscale", bugs.ImpactScale);
                dCmd.Parameters.AddWithValue("@primaryimpactedarea", bugs.PrimaryImpactedArea);
                dCmd.Parameters.AddWithValue("@secondaryimpactedarea", bugs.SecondaryImpactedArea);
                dCmd.Parameters.AddWithValue("@impactedentity", bugs.ImpactedEntity);
                dCmd.Parameters.AddWithValue("@impacttype", bugs.ImpactType);
                dCmd.Parameters.AddWithValue("@percentimpact", bugs.PercentImpact);
                dCmd.Parameters.AddWithValue("@title", bugs.Title);
                dCmd.Parameters.AddWithValue("@description", bugs.Description);
                dCmd.Parameters.AddWithValue("@defectdiscovered", bugs.DefectDiscovered);
                dCmd.Parameters.AddWithValue("@eta", bugs.ETA);
                dCmd.Parameters.AddWithValue("@defectstatus", bugs.DefectStatus);
                dCmd.Parameters.AddWithValue("@defectstatusdetails", bugs.DefectStatusDetails);
                dCmd.Parameters.AddWithValue("@defectclosetime", bugs.DefectCloseTime);
              
                return dCmd.ExecuteNonQuery();
            }
            catch
            {
                throw;
            }
            finally
            {
                dCmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
Posted
Updated 22-Nov-13 2:46am
v2
Comments
Er Daljeet Singh 22-Nov-13 5:47am    
could you provide the code where you are passing the value of listbox into dataaccesslayer
Member 10234093 22-Nov-13 7:14am    
below is my dataaccesslayer code.Please provide me help.

SqlCommand dCmd = new SqlCommand("InsertBugsdata", conn);
dCmd.CommandType = CommandType.StoredProcedure;
try
{
dCmd.Parameters.AddWithValue("@bugnumber", bugs.BugNumber);
dCmd.Parameters.AddWithValue("@publishtopartner", bugs.PublishToPartner);
dCmd.Parameters.AddWithValue("@impactscale", bugs.ImpactScale);
dCmd.Parameters.AddWithValue("@primaryimpactedarea", bugs.PrimaryImpactedArea);
dCmd.Parameters.AddWithValue("@secondaryimpactedarea", bugs.SecondaryImpactedArea);
dCmd.Parameters.AddWithValue("@impactedentity", bugs.ImpactedEntity);
dCmd.Parameters.AddWithValue("@impacttype", bugs.ImpactType);
dCmd.Parameters.AddWithValue("@percentimpact", bugs.PercentImpact);
dCmd.Parameters.AddWithValue("@title", bugs.Title);
dCmd.Parameters.AddWithValue("@description", bugs.Description);
dCmd.Parameters.AddWithValue("@defectdiscovered", bugs.DefectDiscovered);
dCmd.Parameters.AddWithValue("@eta", bugs.ETA);
dCmd.Parameters.AddWithValue("@defectstatus", bugs.DefectStatus);
dCmd.Parameters.AddWithValue("@defectstatusdetails", bugs.DefectStatusDetails);
dCmd.Parameters.AddWithValue("@defectclosetime", bugs.DefectCloseTime);

return dCmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
dCmd.Dispose();
conn.Close();
conn.Dispose();
}

1 solution

Hi Dude,
i have made a sample code,u can use this as reference to fix ur issue..


private void savedata()
       {
           BusinessLayer objBusiness = new BusinessLayer();
           int[] arySelectedItems = lstPrimaryImpactedArea.GetSelectedIndices();
           for (int i = 0; i < arySelectedItems.Length; i++)
           {
             string text =  lstPrimaryImpactedArea.Items[arySelectedItems[i]].Text;
             objBusiness.SaveData(text);

           }
       }

       protected void btn_Click(object sender, EventArgs e)
       {
           savedata();
       }
   }

   public class BusinessLayer
   {
       DataLayer objDataLayer;
       public void SaveData(string data)
       {
           objDataLayer = new DataLayer();
           objDataLayer.SaveData(data);
       }
   }
   public class DataLayer
   {
       public void SaveData(string data)
       {
           // write ur ado code to save the data in the database
       }
   }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900