DataGridView综合应用

一:首先实现的是显示功能:

这次是控制显示,不能把一些敏感的信息显示出来

首先将自动显示更改为false

在学生列表上双击,即进入——load,记得我当时怎么也找不到——load,老师说带——的都是事件处理。

 private void StudentListForm_Load(object sender, EventArgs e)
        {
            gride.AutoGenerateColumns = false;
        }

然后在DataGridView中编辑要显示的列

要特别注意theclass这项,这是要和实体类相一致,而不是和数据库SQL server中的相一致

这是都将学生列表和添加学生的窗体设置为学生信息管理的子窗体

设置如下:

 private void 添加学生ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AddStudent f = new AddStudent();
            f.MdiParent=this;
            f.Show();
        }

        private void 学生列表ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StudentListForm f = new StudentListForm();
            f.MdiParent = this;
            f.Show();

        }

这是还有一个问题就是上课时我犯的,就是在主窗体中将

这时主窗体才起作用。且颜色发生明显变化

二:实现双击显示双击单元格的信息:

先上图看一下效果:

找到grid的双击处理事件,双击

代码如下:

        private void gride_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string content = gride.CurrentCell.Value.ToString();
            int row = gride.CurrentCell.RowIndex;
            int  col=gride.CurrentCell.ColumnIndex;
            string s = string.Format("你双击的单元格:{0}行{1}列 值为{2}", row + 1, col + 1, content);
            MessageBox.Show(s);
        }

三:实现删除数据:

首先在数据访问层 中调用Dbhelper.cs中连接数据库的方法,实现如下操作

public void delete(string id)
        {
            string sql = string.Format("delete from student where id='{0}'", id);
            DbHelper.myExecute(sql);
        
        }

然后在业务逻辑层中调用数据访问层的delete方法:

 public void delete(string id)
        {
            StudentDal dal = new StudentDal();
            dal.delete(id);
        
        }

删除时需要及时刷新,这是就要用到查看的代码,所以将其重构为refreshdata方法。

private void refreshDate(StudentBll bll)
        {
            List<Student> list = bll.getALl();
            gride.DataSource = list;
        }

双击删除代码如下:

  private void button3_Click(object sender, EventArgs e)
        {
            string id = gride.CurrentRow.Cells[0].Value.ToString();
            string name = gride.CurrentRow.Cells[1].Value.ToString();
            DialogResult r = MessageBox.Show("确实要删除["+id+" "+name+"]吗?", "提示", MessageBoxButtons.YesNo);
            if (r == DialogResult.Yes)
            {
              StudentBll bll = new StudentBll();
                bll.delete(id);
                refreshDate(bll);
            }
            }

四:实现添加学生:实现窗体直接的通信

添加和取消设置如下:

 private void button1_Click(object sender, EventArgs e)
        {
            Student student = new Student();
            student.Id = textId.Text;
            student.Name = textname.Text;
            student.Gender = radiomale.Checked ? "男" : "女";
            student.Major = textmajor.Text;
            student.Grade = int.Parse(textgrade.Text);
            student.TheClass =int.Parse( textclass.Text);
            StudentBll bll = new StudentBll();
            bll.insert(student);
           // MessageBox.Show("添加成功!");
            this.DialogResult = DialogResult.OK;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;

        }

至此操作完毕:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值