2

enter image description hereIs there any easy way to save the items in listbox to the database. I am using access database for windows form where user selects items from the combobox and adds it to the list box.

Now i want to add all the items in the listbox to the database separated with comma. How can i perform this?

Here is the code for the class

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Purchase_Management
{
    public partial class Form1 : Form
    {

        string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Amrit\\Desktop\\Database.accdb ;Persist Security Info=False;";
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedText = "Mr";
            comboBox1.Items.Add("Mr");
            comboBox1.Items.Add("Mrs");
            comboBox1.Items.Add("Miss");
            DataSet ds = GetAllItems();
            comboBox2.DataSource = ds.Tables[0];
            comboBox2.DisplayMember = "Product Name";


        }

        public DataSet GetAllItems()
        {
            DataSet dataSet = new DataSet();
            // Create connection object
            OleDbConnection oleConn = new OleDbConnection(connString);
            try
            {
                oleConn.Open();
                string sql = "SELECT [Product Name] FROM [Product]";
                OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, oleConn);
                dataAdapter.Fill(dataSet, "Product");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                oleConn.Close();
            }
            if (dataSet.Tables.Count <= 0)
                return null;
            else
                return dataSet;
        }


        public string InsertUser(string custName, string title, string cust, string phoneNumber, string address1, string address2, string city, string postCode, string country, string itemPurchased)
        {

            // Create connection object
            int ix = 0;
            string rTurn = "";
            OleDbConnection oleConn = new OleDbConnection(connString);
            try
            {
                oleConn.Open();
                string sql = "INSERT INTO [Customer]([Customer's Ebayname], [Title],  [Customer's Name], [Phone Number], [Address 1], [Address 2], [City], [Post Code], [Country] , [Item Purchased])" +
                         "VALUES ( @custName, @title, @cust, @phoneNumber, @address1, @address2, @city, @postCode, @country , @itemPurchased)";
                OleDbCommand oleComm = new OleDbCommand(sql, oleConn);

                oleComm.Parameters.Add("@custName", OleDbType.Char).Value = custName;
                oleComm.Parameters.Add("@title", OleDbType.Char).Value = title;
                oleComm.Parameters.Add("@cust", OleDbType.Char).Value = cust;
                oleComm.Parameters.Add("@phoneNumber", OleDbType.Char).Value = phoneNumber;
                oleComm.Parameters.Add("@address1", OleDbType.Char).Value = address1;
                oleComm.Parameters.Add("@address2", OleDbType.Char).Value = address2;
                oleComm.Parameters.Add("@city", OleDbType.Char).Value = city;
                oleComm.Parameters.Add("@postCode", OleDbType.Char).Value = postCode;
                oleComm.Parameters.Add("@country", OleDbType.Char).Value = country;
                oleComm.Parameters.Add("@itemPurchased", OleDbType.Char).Value = itemPurchased;


                ix = oleComm.ExecuteNonQuery();
                if (ix > 0)
                    rTurn = "User Added";
                else
                    rTurn = "Insert Failed";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                rTurn = ex.ToString();
            }
            finally
            {
                oleConn.Close();
            }
            return rTurn;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            InsertUser(textBox1.Text, comboBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text, comboBox2.Text);
            if (MessageBox.Show("Customer Details Saved Successfuly") == DialogResult.OK)
            {
                Form1.ActiveForm.Close();


            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add(comboBox2.Text);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (this.listBox1.SelectedIndex >= 0)
                this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
        }



    }
}
10
  • What exactly are you struggling with? Your code demonstrates that you are familiar with data access code, and also that you are familiar with the Items property of the ComboBox. It shouldn't be difficult to use the code you already have to do this? What have you tried? Commented Feb 15, 2013 at 9:49
  • my only concern is,,how can i add entries with comma after each items Commented Feb 15, 2013 at 9:51
  • I am not able to add those items even without commas Commented Feb 15, 2013 at 9:54
  • You could use a string builder to make up a comma seperated string object? Commented Feb 15, 2013 at 9:55
  • just give me idea how can i add all the items in that list box to the database Commented Feb 15, 2013 at 10:00

1 Answer 1

2

Step 1

Concatenate all the items in your ListBox. String.Join takes an array of string values, and returns a single String which concatenates them together. Consider using the ListBox.Items property which contains all the items you've added.

Step 2

Insert the string in whichever database you want. If you're reusing the "itemPurchased" column in your Product table you'll be able to use the string you've concatenated from Step 1 above.

Short of writing the entire code for you, I'm not sure what else we can do for you here.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.