ASPSnippets

Alerts
Get notified when a new article is published.

Name
 
Email

Your email will always be private and will not be shared.

Follow us on twitter.
 
ASP.Net ListBox: Save Multiple Selected Items in the Database
Author Name: Mudassar Khan Published Date: July 03, 2009
Filed Under :
ASP.Net
Views: 5024

This example shows the basics on how to save multiple selected items from the ASP.Net ListBox control to the database in ASP.Net. Please note that this example requires a basic knowledge of ADO.NET.

STEP1: Setting up the User Interface (GUI)

For the simplicity of this demo, I just set up the web form like below:

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>Untitled Page</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        Employee Names: <br />

        <asp:ListBox ID="ListBox1" runat="server" Height="149px" SelectionMode="Multiple" Width="113px">

        <asp:ListItem>Vinz</asp:ListItem>

        <asp:ListItem>Jhen</asp:ListItem>

        <asp:ListItem>Chris</asp:ListItem>

        <asp:ListItem>Shynne</asp:ListItem>

        <asp:ListItem>Chu</asp:ListItem>

        <asp:ListItem>Mark</asp:ListItem>

        <asp:ListItem>Lilian</asp:ListItem>

        <asp:ListItem>Rod</asp:ListItem>

        <asp:ListItem>Glendzy</asp:ListItem>

        </asp:ListBox>    

    </div>

    <br />

    <asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />

    </form>

</body>

</html>

 

 

Notes:

* Since the ListBox is intended for multiple item selections then we need to set the SelectionMode attribute of the ListBox to Multiple
* To do multiple Selections in the ListBox then just hold Ctrl key and select the items you want.

STEP 2: Creating a Simple Database Table

  In this demo, we are going to store the selected employee names that is selected from the ListBox to the database. So let's now create a simple table that contains the following Column Names:

 




 

 

Note:

I set the Id to auto increment so that the id will be automatically generated for every new added row. To do this select the Column name “Id” and in the column properties set the “Identity Specification” to yes.

STEP 3: Declaring the necessary name spaces:

Be sure to add the following namespaces below:

 

 

using System.Data.SqlClient;

using System.Collections.Specialized;

using System.Text;


We need to declare the namespaces above so that we can use the SqlClient, StrngCollections and StringBuilder built-in methods in our codes later.

STEP4: Creating the Method for Multiple Inserts.

Here are the code blocks below:

   



private string GetConnectionString()

    {

        //Where DBConnection is the connetion string that was set up in the web config file

        return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;

    }

 

    private void InsertRecords(StringCollection sc)

    {

        SqlConnection conn = new SqlConnection(GetConnectionString());

        StringBuilder sb = new StringBuilder(string.Empty);

        foreach (string item in sc)

        {

            const string sqlStatement = "INSERT INTO Table1 (Employees) VALUES";

            sb.AppendFormat("{0}('{1}'); ", sqlStatement, item);

        }

 

        try

        {

            conn.Open();

            SqlCommand cmd = new SqlCommand(sb.ToString(), conn);

            cmd.CommandType = CommandType.Text;

            cmd.ExecuteNonQuery();

            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Records Successfuly Saved!');", true);

        }

 

        catch (System.Data.SqlClient.SqlException ex)

        {

            string msg = "Insert Error:";

            msg += ex.Message;

            throw new Exception(msg);

        }

        finally

        {

            conn.Close();

        }

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        StringCollection sc = new StringCollection();

 

        foreach (ListItem item in ListBox1.Items)

        {

            if (item.Selected)

            {

                sc.Add(item.Text);

            }

        }

        InsertRecords(sc);

    }

 

As you can see, the code above is very straight forward and self explanatory.

STEP5: Compile and Run the Application.

The page output would look something like below:

 




 

Clicking the Save Button, will execute the method InsertRecords for storing the selected items from the ASP.Net ListBox Control to the database and displays a pop up message informing you that the "Records was successfully Saved"!.


That's it! Hope you will find this example useful! Download the related source code using the link below.

Source Code.zip (1.61 kb)


If you like this article, help us grow by bookmarking this page on any social bookmarking site.
Bookmark and Share Page copy protected against web site content infringement by Copyscape

Related Articles

Comments

Add Comments

You can add your comment about this article using the form below. Make sure you provide a valid email address
else you won't be notified when the author replies to your comment

Please note that all comments are moderated and will be deleted if they are
  • Not relavant to the article
  • Spam
  • Advertising campaigns or links to other sites
  • Abusive content.
There is no need to add BR tags. Simply press enter for new line

Name*  
Email*
Comment*  
Security code
Security code