如何删除listview中选中的行?

时间:2022-07-03 19:44:17
如题,我在listview中显示了数据库Employee中表Information中的数据,表中分别有编号、姓名、性别3列,现在我要选中listview中显示的某一行记录,然后右键删除此行在listview中的显示,同时我还需要在数据库中删除这行记录,请问我该如何实现呢?

14 个解决方案

#1


你可以通过选中ListView中的编号 在数据库中查询匹配的编号 进行删除它 就可以了 不知道有没有帮助

#2


直接在Dataset中删除,然后Update Listview,同时对数据库进行更新

#3


删除其在listview的显示这个我自己做出来了,最主要就是我不知道怎么对数据源进行操作啊,请各位帮帮忙啊,我该怎么在数据库中也将它删除啊?

#4


string sql =string.Format("delete from Information where 编号={0}",你要删的编号);
command.ExecuteNonQuery(sql); //删除数据
再刷新一遍就可以了!
也就是执行一下你显示listview数据的方法!

#5


有事情可以联系我!QQ451640628

#6


我是先输入一个编号或者姓名查询,然后查询结果在listview中显示出来,最后我在这些查询结果中选择一项,然后右键删除,删除需要删除在listview的记录,也要删除在数据库中的记录。你的查询语句那里: where 编号=,这个怎么弄?怎么获取当前我选择的这行记录的编号的值?

#7


在listview SelectedIndexChanged事件中this.ListWindowsView.SelectedItems[0].SubItems[0].Text.ToString()

#8


我按7L的写了,可是报错了,错误为:
   未处理ArgumentOutOfRangeException
   InvalidArgument="0"的值对于"index"无效。

#9


编号在listview上显示不,显示就能找啊
不显示,那就查询的时候,在listview添一行隐藏列,并把编号赋进去
我考虑你这个是有编号的,在第一列显示,对吧,
那就是“...where 编号=”+ yourlistview.SelectedItems[0].Text
如果非第一列,就yourlistview.SelectedItems[0].SubItems[x].Text
x是从1开始的,在listview第二列,x=1,以此类推
另外,subitems是不是只能用在listview是detail模式下,你再核对一下

#10


还是要报同样的错啊,怎么回事呢?

#11


引用 10 楼 zhuhong639 的回复:
还是要报同样的错啊,怎么回事呢?


因为你把那行删了,再去获取它的ID,自然就无法获取了。

1.像上面说的方法,获取ID,从数据库删除
2.数据库删除成功的话,把listview的选中行也删了

#12


string sql=string.Format("delete from Information where id={0}"
,Convert.Toint32(listview.SelectedItem[0].tag));
SqlCommand Command=new SqlCommand(sql,数据库连接);
int  a=Command.ExecuteNonQuery();
这个是跟据你选中的下标来删除的这个应该可以
  

#13


绑定一个右键快捷菜单

#14


   for (int i = this.listView1.SelectedItems.Count - 1; i >= 0; i--)
            {
                string strcmd = "delete from Dict_ClothesPrice where ClothesNo = " +listView1.SelectedItems[0].SubItems[0].Text.ToString() + " ";
                con.Open();
                SqlCommand cmd = new SqlCommand(strcmd, con);
                ListViewItem item = this.listView1.SelectedItems[i];
                this.listView1.Items.Remove(item);
                cmd.ExecuteNonQuery();
            }

#1


你可以通过选中ListView中的编号 在数据库中查询匹配的编号 进行删除它 就可以了 不知道有没有帮助

#2


直接在Dataset中删除,然后Update Listview,同时对数据库进行更新

#3


删除其在listview的显示这个我自己做出来了,最主要就是我不知道怎么对数据源进行操作啊,请各位帮帮忙啊,我该怎么在数据库中也将它删除啊?

#4


string sql =string.Format("delete from Information where 编号={0}",你要删的编号);
command.ExecuteNonQuery(sql); //删除数据
再刷新一遍就可以了!
也就是执行一下你显示listview数据的方法!

#5


有事情可以联系我!QQ451640628

#6


我是先输入一个编号或者姓名查询,然后查询结果在listview中显示出来,最后我在这些查询结果中选择一项,然后右键删除,删除需要删除在listview的记录,也要删除在数据库中的记录。你的查询语句那里: where 编号=,这个怎么弄?怎么获取当前我选择的这行记录的编号的值?

#7


在listview SelectedIndexChanged事件中this.ListWindowsView.SelectedItems[0].SubItems[0].Text.ToString()

#8


我按7L的写了,可是报错了,错误为:
   未处理ArgumentOutOfRangeException
   InvalidArgument="0"的值对于"index"无效。

#9


编号在listview上显示不,显示就能找啊
不显示,那就查询的时候,在listview添一行隐藏列,并把编号赋进去
我考虑你这个是有编号的,在第一列显示,对吧,
那就是“...where 编号=”+ yourlistview.SelectedItems[0].Text
如果非第一列,就yourlistview.SelectedItems[0].SubItems[x].Text
x是从1开始的,在listview第二列,x=1,以此类推
另外,subitems是不是只能用在listview是detail模式下,你再核对一下

#10


还是要报同样的错啊,怎么回事呢?

#11


引用 10 楼 zhuhong639 的回复:
还是要报同样的错啊,怎么回事呢?


因为你把那行删了,再去获取它的ID,自然就无法获取了。

1.像上面说的方法,获取ID,从数据库删除
2.数据库删除成功的话,把listview的选中行也删了

#12


string sql=string.Format("delete from Information where id={0}"
,Convert.Toint32(listview.SelectedItem[0].tag));
SqlCommand Command=new SqlCommand(sql,数据库连接);
int  a=Command.ExecuteNonQuery();
这个是跟据你选中的下标来删除的这个应该可以
  

#13


绑定一个右键快捷菜单

#14


   for (int i = this.listView1.SelectedItems.Count - 1; i >= 0; i--)
            {
                string strcmd = "delete from Dict_ClothesPrice where ClothesNo = " +listView1.SelectedItems[0].SubItems[0].Text.ToString() + " ";
                con.Open();
                SqlCommand cmd = new SqlCommand(strcmd, con);
                ListViewItem item = this.listView1.SelectedItems[i];
                this.listView1.Items.Remove(item);
                cmd.ExecuteNonQuery();
            }