如何从ListView中删除选中的项目,并且更改应该在带有SQL Server 2008的C#Windows窗体中的SQL Server2008的表中可见 [英] how to delete checked items from listview and that changes should be visible in table in sql server2008 from c# windows forms with sql server 2008

查看:175
本文介绍了如何从ListView中删除选中的项目,并且更改应该在带有SQL Server 2008的C#Windows窗体中的SQL Server2008的表中可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我叫vishal,我想知道如何在listview中删除选中的项目,并且一旦删除,还应该从带有SQL Server2008的C#Windows窗体中的SQL Server表中删除吗?
我的表单名为: frmSearchDialyzer ,具有一个名为: lstSearch 的列表视图.下面给出的是我在c#中的表单代码:

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#:

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);
}
}


我已启用名为: lstSearch 的列表视图的 CheckBoxes属性 true
下面给出的是我在SQL Server2008中名为 dialyser 的表的结构:
ColumnName DataType AllowNulls
mfr_ref_number nvarchar(20)是
mfr_lot_number nvarchar(20)是
mfr_date日期是
exp_date date是
packed_volume Int是
Patient_id Int是
start_date datetime是
end_date datetime是
row_upd_date datetime是
制造商nvarchar(50)是
Dialyzer_size nvarchar(20)是
Deleted_status位是
Deleted_date datetime是
dialyserID nvarchar(20)是
close_status位是
close_date datetime是

我想要的是用户检查listview(lstSearch)中存在的某些项目,然后按以下形式按下/单击 btnRemove : frmSearchDialyzer ,然后仅选择选中的项目 >不仅必须从listview(lstSearch)中删除,而且还必须从sql server2008中名为 dialyzer 的表中删除.我知道我必须在 frmSearchDialyzer btnRemove_Click 事件中使用delete命令才能获得所需的结果,但我不知道如何将其与 CheckedItems 一起使用>在我的 frmSearchDialyzer 的listview( lstSearch )中.谁能帮我吗?在解决此问题方面的任何帮助/指导将不胜感激.!


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.!

推荐答案


我希望"DialyzerID"是您的唯一ID,如果这样的话,您的问题很简单:
Hi,
I Hope "DialyzerID" this is your unique id if so then your question is simple :
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 + "'";

        }

    } 

}


这篇关于如何从ListView中删除选中的项目,并且更改应该在带有SQL Server 2008的C#Windows窗体中的SQL Server2008的表中可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆