C# winform 三层架构增删改查,(删除篇)

一.留言

C# wnform 三层架构增删改查,本篇是增删改查是删除篇,也就增删改查外加一个登录更新完,后续考虑出一个增删改查就是不用三层架构,在uI里面 直接写完,并且放一个帮助类,基本十分钟可以写完一套增删改查,这种适合联系或者熟悉一下流程后续可以关注一下。

二.删除

那么删除,我们是通过UI显示的数据进行删除,所以我们只需要在UI显示界面里添加一个删除按钮就可以了如图:

那么,我们就先看DAL里面写什么:

复制代码
  /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteMessage(int id)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                string query = "DELETE FROM messaage WHERE Id = @Id";
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    command.Parameters.AddWithValue("@Id", id);
                    int rowsAffected = command.ExecuteNonQuery();
                    return rowsAffected > 0;
                }
            }
        }

在DAL里面通过查询ID去删除,为什么要通过ID去删除呢?而不是通过表里的比如食物等字段删除,因为ID是不重复的,但是食物,名称会重复,比如说我想删除一个食物可能查询出来很多相同的食物,那么就会删除很多条数据,所以我们先查询到ID,然后传值ID

下面是BLL接收值给UI

复制代码
/// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteMessage(int id)
        {
            return loginDal.DeleteMessage(id);
        }

然后ui接收

复制代码
  private void button2_Click(object sender, EventArgs e)
        {
            DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
            int id = (int)selectedRow.Cells["Id"].Value;

            bool isDeleted = loginBll.DeleteMessage(id);
            if (isDeleted)
            {

                MessageBox.Show("删除成功");
                EssShow();
            }
            else
            {
                MessageBox.Show("Failed to delete message.");
            }
        }

我们只需要获取到我们想删除的数据,然后调用一下bll就可以了那么删除后,提示删除成功,但是页面不会变,需要在次执行,删除的数据才会消失,这是为什么呢,因为我们先查询,直接显示出了数据,然后删除后没有查询,所以数据不变,要再次执行后才能显示最新数据,所以我们可以删除成功后再次查询一遍,但是我们不用再去写一遍dal bll,我们之前不是写过显示数据,名称叫EssShow,我们只需要把这个方法调用过来就可以了,放在删除成功下面,效果图展示

点击确定后更新数据:

需要源码联系免费的

相关推荐
Evand J24 分钟前
【matlab例程】无迹粒子滤波(UPF)的例程,用于三维环境下多雷达目标跟踪,非线性系统
开发语言·matlab·目标跟踪
2501_9248787344 分钟前
无人机光伏巡检缺陷检出率↑32%:陌讯多模态融合算法实战解析
开发语言·人工智能·算法·视觉检测·无人机
计算机毕设定制辅导-无忧学长1 小时前
InfluxDB 与 Python 框架结合:Django 应用案例(三)
开发语言·python·django
惜.己1 小时前
python中appium
开发语言·python·appium
小沈熬夜秃头中୧⍤⃝1 小时前
Python 入门指南:从零基础到环境搭建
开发语言·python
睿思达DBA_WGX1 小时前
Python 程序设计讲义(54):Python 的函数——函数概述
开发语言·python
♪张三儿℡1 小时前
Oracle优化学习十六
数据库·学习·oracle
Algebraaaaa1 小时前
C++ 中 NULL 与 nullptr 有什么区别?
开发语言·c++
胡琦博客1 小时前
LLM Prompt与开源模型资源(3)如何写一个好的 Prompt
数据库·开源·prompt
俞凡1 小时前
[大厂实践] Netflix 分布式计数器抽象
架构