问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

winform连接sql数据库的listview怎么删除选中的一行记录

发布网友 发布时间:2022-04-09 09:50

我来回答

3个回答

懂视网 时间:2022-04-09 14:12

StudentData().Select();


3.将数据导入到ListView中去

foreach (Student S in list)
{
ListViewItem li = new ListViewItem();

li.Text = S.Code;

li.SubItems.Add(S.Name);
li.SubItems.Add(S.Sexstr);
li.SubItems.Add(S.Birstr);
li.SubItems.Add(S.SubjectName);

listView1.Items.Add(li);

}

4.窗体加载后自动绑定显示ListView中的数据
办法:数据绑定代码写在窗体的构造函数中
5.给用户展示最终数据(属性扩展)
6.行号
用C#变量循环++来实现
7.数据重复绑定
在绑定之前清空Items集合
listView1.Items.Clear();
8.选中一行数据
外观 - FullRowSelect:选择其中一项是否选中整行
CheckBoxes:复选框
GridLines:网格线
行为 - HideSelection :当控件没有焦点时,是否移除选定项的突出显示
HeaderStyle:列表头的样式
HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用
重点:
1、数据如何绑定上去

2、如何将选中的数据取出来
一个是FullRowSelect属性为True可以选择整行数据(ListView1.SelectedItems)

if (listView1.SelectedItems.Count > 1)//选择了多行
{
MessageBox.Show("修改只允许选择一行");
}
else if (listView1.SelectedItems.Count == 1)
{
foreach (ListViewItem li in listView1.SelectedItems)
{
if (li.Selected)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}
}
else//未选中
{
MessageBox.Show("请先选中您要修改的数据");
}


另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据(ListView1.CheckedItems)

foreach (ListViewItem li in listView1.CheckedItems)
{
if (li.Checked)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}

删除代码部分:

删除限制:
1、不能不选
2、多条数据如果有未删除的,提示一下,删除成功几条,未成功几条,未成功是那几条

private void button2_Click(object sender, EventArgs e)
 {
  int DelCount = 0; //要删除的总条数
  int count = 0; //已经删除的条数
  string NotDelete = "";

  if (listView1.CheckedItems.Count <= 0)
  {
  MessageBox.Show("请先选中您要删除的数据");
  }
  else
  {
  DelCount = listView1.CheckedItems.Count;

  foreach(ListViewItem li in listView1.CheckedItems)
  {
   if(li.Checked)
   {
   bool ok = new StudentData().delete(li.SubItems[1].Text);
   if (ok)
   {
    count += 1;
   }
   else
   {
    NotDelete += li.SubItems[1].Text + ",";
   }
    
   
   }
  }
  NewMethod();
  if (count == DelCount)
  {
   MessageBox.Show("删除成功");
  }
  else
  {
   MessageBox.Show("删除失败!要删除" + DelCount + "条数据,未删除" + (DelCount - count) + "条数据,未删除的用户名为:" + NotDelete + "");
  }
  } 
 }

添加限制:

1.编号不能为空,且编号不能在数据库中查到

2.姓名不能为空;

技术分享
 public partial class Form2 : Form
 {
 Form1 F1 = null;
 public Form2(Form1 f1)
 {
  InitializeComponent();
  F1 = f1;
  List<Subject> slist = new SubjectData().select();
  Usub.DataSource = slist;
  Usub.ValueMember = "SubjectCode";
  Usub.DisplayMember = "SubjectName";
 }
 bool c = false;//判断编号是否存在
 private void textBox1_TextChanged(object sender, EventArgs e)
 {
  Student s = new StudentData().select(UCode.Text.Trim());//调用StudentData类的查询方法
  if (s == null)
  {
  code1.Text = "";
  c = false;
  }
  else
  {
  code1.Text = "此编号已存在!";
  c = true;
  }
  
 }
 bool n = false;//判断姓名是否为空
 private void button1_Click(object sender, EventArgs e)
 {
  if(UCode.Text=="")
  {
  code1.Text = "编号不能为空!";
  c = true;
  }  
  
  if(UName.Text=="")
  {
  name1.Text="姓名不能为空";
  n=false;
  }
  else
  {
  n=true;
  name1.Text="";
  }
  Student S1 = new Student();
  if(c==false&&n)
  {
  S1.Code = UCode.Text.Trim();
  S1.Name = UName.Text.Trim();
  S1.Sex = ra_true.Checked;
  S1.Birthday = BIR.Value;
  S1.SubjectCode = Usub.SelectedValue.ToString();
  bool bo= new StudentData().Insert(S1);
  if (bo)
  {
   MessageBox.Show("添加成功!");
   F1.NewMethod();
   this.Close();
  }
  else
  {
   MessageBox.Show("添加失败!");
  }
  }
 }
}
添加代码部分

 

winform(ListView及数据库连接)

标签:

热心网友 时间:2022-04-09 11:20

如果楼主仅仅是从ListView中删除一行,并不是从数据库中删除的话,如下编码
this.listview1.SelectedItems[0].Remove();
如果楼主想从ListView中删除,并且还得从数据库中删除的话,
楼主可以获取到用户选中的行的ID,然后根据ID从数据库中删除。
然后对ListView清空,重新绑定数据源。追问如果没id怎么办啊

追答总得有个根据!
没有ID是不符合数据表设计规范的。

热心网友 时间:2022-04-09 12:38

绑定的时候,每行对应都有一个Id,取得选中行的id,然后根据id删除这行数据,然后重新查询绑定到listview,或者只是把这行从控件中取出
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米摄像头离线人在外地怎么办 win11如何固定电脑桌面图标 QQ三国的当代杰出少年是怎么得的? 三国人物风云榜的作者简介 三国人物风云榜作者简介 三国人物风云榜目录 三国人物风云榜内容提要 w10电脑不动黑屏w10系统开机黑屏只有鼠标箭头怎么回事 ...FRAMEWORK中的Action, Control, Resource, Model到底是什么关系... windframework特点 猴子在看成绩单代表什么意思 佳能MX378打印机怎么设置自动接传真 没有淡奶油可以用牛奶代替吗 做雪糕没有淡奶油可以用淡奶代替吗? 如何清除整列公式内容 只保留数值 excel iPhone X在深圳南山区哪儿换电池好? 华强北哪卖电池 华强北哪里修手机比较好? 深圳华强北哪里修手机好??! 华强北那里有换苹果蓝牙耳机电池吗? 深圳华强北哪栋楼是专门卖电池的 苹果7p耗电快在深圳福田附近哪里可以换电池? 华强北哪里好一点?换苹果电池的?! 深圳华强北苹果手机维修店哪家好 深圳华强北电池柜台多集中在哪几个市场? iphonex电池老化在深圳去哪换电池? 华强北维修手机哪里好 深圳华强北苹果x换电池附近哪可以修? 深圳有换手机电池的地点吗? 办理了异地就医登记手续,还要在异地医保中心登记吗 我的身份证绑定了5个微信 但是之前去的都找不回来了 上不去了 要怎么解除呢_百度问一问 被盗,找不回来怎么解除身份证和微信银行卡绑定? 怎么解除身份证绑定 如何解除身份证绑定的 股癣初期症状有哪些 体癣的早期症状??? 头癣的早期症状是什么? 《急求手癣最初症状有什么??》 在excel工作表中,B12表示 列与第 行交叉点所属的单元格? 在excel里,A1的单元格内容是一个单元格的地址:B12 那怎么示A1所指的B12这个单元格的内容呢? excel表格中“=汉字!B12”什么意思有什么用处啊 在excel中Al表示的单元格地址为 A.第二行第一列 B. c# winform中listview的item点击事件 中国历代皇帝顺序是什么? 甘加一个什么部首变成新字 甘加偏旁有什么字 甘加什么偏旁成什么字? 甘加上偏旁可以组成哪些字 甘加什么偏旁成什么字 甘换偏旁组词?