0925 ListView

ListView

  说白了就是将数据库以表格的形式展示在窗体中

   1、视图 -点击右上角小箭头可以快速建表

   2、设置列头 - Columns属性点击添加的都是列名

   3、添加行数据 -添加完列之后有个Items属性添加行数据

-----------------------------------------------------------

1、窗体加载后自动绑定显示ListView中的数据
  办法:
     数据绑定代码写在窗体的构造函数中

//绑定一个函数,显示数据

 public void DBind()
        {
            listView1.Items.Clear();
            int a=1;
            List<Student> list1=new List<Student>();
            StudentData st1=new StudentData();
            list1 = st1.Select();
            foreach(Student st in list1)
            {
                ListViewItem li = new ListViewItem();
                li.Text = a.ToString();
                li.SubItems.Add(st.Code.ToString());
                li.SubItems.Add(st.Name);
                li.SubItems.Add(st.sex.ToString());
                li.SubItems.Add(st.birthday.ToString());
                li.SubItems.Add(st.subjectcode);
                listView1.Items.Add(li);
                a++;
            }
        }

//每次启动就可以刷新数据了

public Form1()
        {
            InitializeComponent();
            DBind();
        }

2、给用户展示最终数据
 属性扩展

在封装对象的时候就需要写了,以前写过不再啰嗦

3、行号
 用C#变量循环++来实现

int a=1;

li.Text = a.ToString();

这是上面那个函数的两句代码,就是为了实现序号的

4、数据重复绑定
 在绑定之前清空Items集合

listView1.Items.Clear();

5、选中一行数据
外观 - FullRowSelect:选择其中一项是否选中整行   

CheckBoxes:复选框   

GridLines:网格线 
行为 - HideSelection :当控件没有焦点时,是否移除选定项的突出显示      

HeaderStyle:列表头的样式

HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用

2、如何将选中的数据取出来
 一个是FullRowSelect属性为True可以选择整行数据
  ListView1.SelectedItems
  
 另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据
  ListView1.CheckedItems

---------------------------------------------------------------------

删除

只能删除一条:

private void button3_Click(object sender, EventArgs e)
        {
            int delcount = 0;
            int shengyucount = 0;
            string a = "";
            StudentData std = new StudentData();
            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)
                        {
                            shengyucount++;
                        }
                        else { a += li.SubItems[1].Text + ","; }
                    }
                }
                DBind();
                if (delcount == shengyucount)
                {
                    MessageBox.Show("删除成功");
                }
                else
                {
                    MessageBox.Show("删除失败!要删除" + delcount + "条数据,未删除" + (delcount - shengyucount) + "条数据,未删除的用户名未:" + a + "");
                }
            }
        }

增加:

学号不能为空,不能重复,名字不能为空

private void button1_Click(object sender, EventArgs e)
        {
            Student st = new Student();
            StudentData sdt = new StudentData();
            if (textBox1.Text == "")
            {
                xuehao.Text = "学号不能为空!";
            }
            else
            {
                if (sdt.Select(textBox1.Text.Trim()))
                {
                    xuehao.Text = "学号已存在!";
                }
                else
                {
                    st.Code = textBox1.Text;
                }
            }

            if (textBox2.Text != "")
            {
                st.Name = textBox2.Text;
            }
            else
            {
                xingming.Text = "姓名不能为空!";
            }

            if (radioButton1.Checked)
            {
                st.Sex = true;
            }
            else
            {
                st.Sex = false;
            }

            st.Birthday = dateTimePicker1.Value;
            st.SubjectCode = comboBox1.SelectedValue.ToString();
            bool b=sdt.Insert(st);
            if (b == true)
            {
                MessageBox.Show("添加成功!");
                this.Close();
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
            F1.DBind();
           

        }

修改:

学号不能修改,名字不能为空

private void Form3_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Student st = new Student();
            StudentData sdt = new StudentData();
            st.Code = label3.Text;
            if (textBox1.Text != "")
            {
                st.Name = textBox1.Text;
            }
            else
            {
                label8.Text = "姓名不能为空!";
            }

            if (radioButton1.Checked)
            {
                st.Sex = true;
            }
            else
            {
                st.Sex = false;
            }

            st.Birthday = dateTimePicker1.Value;
            st.SubjectCode = comboBox1.SelectedValue.ToString();
            bool b = sdt.Update(st);
            if (b == true)
            {
                MessageBox.Show("修改成功!");
                this.Close();
            }
            else
            {
                MessageBox.Show("修改失败!");
            }
            F1.DBind();
        }

原文地址:https://www.cnblogs.com/a12110303043/p/5907401.html