Click here to Skip to main content
15,895,538 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi my name is vishal i was wondering on how to delete checked items in listview and once deleted should also be deleted from table in sql server from c# windows forms with sql server2008?
i have a listview named:lstSearch in my form named:frmSearchDialyzer. Given below is my form code in c#:
C#
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.SqlClient;
namespace DRRS_CSharp
{
    public partial class frmSearchDialyzer : Form
    {
        public frmSearchDialyzer()
        {
            InitializeComponent();
            this.lstSearch.DoubleClick += new System.EventHandler(this.lstSearch_DoubleClick);
        }
private void lstSearch_DoubleClick(object sender, EventArgs e)
        {
            if (MessageBox.Show("Are you sure to delete this dialyzer information?", "DRRS", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
            {
                foreach (ListViewItem ld in lstSearch.SelectedItems)
                {
                    lstSearch.Items.Remove(ld);
                }
            }
        }
 private void btnSearch_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
            lstSearch.Items.Clear();
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand();
            DataSet ds;
            SqlDataAdapter adp = new SqlDataAdapter();
            lstSearch.Columns.Add("DialyzerID", 140, HorizontalAlignment.Left);
            lstSearch.Columns.Add("Manufacturer", 260, HorizontalAlignment.Left);
            lstSearch.Columns.Add("Size", 95, HorizontalAlignment.Center);
            lstSearch.Columns.Add("PackedVolume", 87, HorizontalAlignment.Center);
            lstSearch.Columns.Add("Patient Name", 170, HorizontalAlignment.Right);
            lstSearch.Visible = true;
            lstSearch.View = View.Details;
            lstSearch.GridLines = true;
            if (txtDialyzerID.Text.Trim() != "")
            {
                cmd = new SqlCommand("Select d.dialyserID,d.manufacturer,d.dialyzer_size,d.packed_volume,p.patient_first_name+' '+p.patient_last_name as patient_name from dialyser d,patient_name p where p.patient_id=d.patient_id and d.dialyserID=" + txtDialyzerID.Text.Trim() + "", conn);
                adp = new SqlDataAdapter(cmd);
                ds = new DataSet();
                adp.Fill(ds, "dialyser" + "patient_name");
                dt = ds.Tables["dialyser" + "patient_name"];
            }
            else if (txtManufacturer.Text.Trim() != "")
            {
                cmd = new SqlCommand("Select d.dialyserID,d.manufacturer,d.dialyzer_size,d.packed_volume,p.patient_first_name+' '+p.patient_last_name as patient_name from dialyser d,patient_name p where p.patient_id=d.patient_id and d.manufacturer like '%" + (txtManufacturer.Text.Trim()) + "%'", conn);
                adp = new SqlDataAdapter(cmd);
                ds = new DataSet();
                adp.Fill(ds, "dialyser" + "patient_name");
                dt = ds.Tables["dialyser" + "patient_name"];
            }
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                lstSearch.Items.Add(dt.Rows[i].ItemArray[0].ToString());
                lstSearch.Items[i].SubItems.Add(dt.Rows[i].ItemArray[1].ToString());
                lstSearch.Items[i].SubItems.Add(dt.Rows[i].ItemArray[2].ToString());
                lstSearch.Items[i].SubItems.Add(dt.Rows[i].ItemArray[3].ToString());
                lstSearch.Items[i].SubItems.Add(dt.Rows[i].ItemArray[4].ToString());
            }
}
private void btnRemove_Click(object sender, EventArgs e)
        {

            foreach (ListViewItem ls in lstSearch.CheckedItems)
            {
lstSearch.Items.Remove(ls);
}
}

I have enabled CheckBoxes property of my listview named:lstSearch to true
Given below is structure of my table named:dialyser in sql server2008:
ColumnName DataType AllowNulls
mfr_ref_number nvarchar(20) Yes
mfr_lot_number nvarchar(20) Yes
mfr_date date Yes
exp_date date Yes
packed_volume Int Yes
patient_id Int Yes
start_date datetime Yes
end_date datetime Yes
row_upd_date datetime Yes
manufacturer nvarchar(50) Yes
dialyzer_size nvarchar(20) Yes
deleted_status bit Yes
deleted_date datetime Yes
dialyserID nvarchar(20) Yes
closed_status bit Yes
closed_date datetime Yes

What i want is when user checks some items present in listview(lstSearch) and then press/click btnRemove in form:frmSearchDialyzer then only the checked items must not only be removed from listview(lstSearch) but also from table named:dialyzer in sql server2008. I am aware that i have to use delete command in btnRemove_Click event in frmSearchDialyzer in achieving the required result but i dont know how to use it with CheckedItems in my listview(lstSearch) in frmSearchDialyzer. Can anyone help me please? Any help/guidance in solving of this problem would be greatly appreciated.!
Posted
Updated 28-May-14 20:42pm
v2

1 solution

Hi,
I Hope "DialyzerID" this is your unique id if so then your question is simple :
C#
private void btnRemove_Click(object sender, EventArgs e)
        {

           
for (int i = 0; i < lstSearch.Items.Count; i++ )
    {

        if (lstSearch.Items[i].Selected)
        {
            lstSearch.Items[i].Remove();

String DialyzerID=listView.Items[i].Subitems[1].Text;

// Here you can write your delete query 
//for  excample - 
String query="delete from your_TableName where DialyzerID='"+ DialyzerID + "'";

        }

    } 

}
 
Share this answer
 
Comments
Member 10248768 29-May-14 3:26am    
Thanks syed shanu for your solution.Your code works fine!But how to delete multiple checked items from listview with checkboxes property enabled:true from c# windows forms with sql server2008 using the above code?Reply please?

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