当前位置: 首页 > news >正文

C# winform三层架构 实现增删改查( 显示数据,查询数据 显示,查询篇)

一.留言

上一篇讲解了如何去添加数据,那么本章节我们来做,添加数据后显示,以及咋现有的数据里,查询我们所需要的数据。

二.显示

首先我们看上一篇更新,我们在添加成功后跳转页面显示数据,那么跳转代码只有两行

当我们添加数据成功的时候,我们只需要将想要的界面名称拿过来实例化一下,然后直接show显示一下就可以了,那么就可以跳转了 

下面我们看显示页面 ,我们新建一个from(新建看前两章),然后使用datagrdvew控件

然后在DAL里面写sql语句

 /// <summary>/// 显示数据 /// </summary>/// <returns></returns>public DataTable MessShow(){using (SqlConnection connection = new SqlConnection(connectionString)){connection.Open();string query = "SELECT * FROM messaage";using (SqlCommand command = new SqlCommand(query, connection)){using (SqlDataAdapter adapter = new SqlDataAdapter(command)){DataTable dataTable = new DataTable();adapter.Fill(dataTable);return dataTable;}}}

依旧是链接数据库,sql语句,只不过要把查询到的数据,传给表格

然后BLL接收传值

  /// <summary>/// 显示数据/// </summary>/// <returns></returns>public DataTable MessShow(){return loginDal.MessShow();}

之后给到uI,ui里有一个  public MessShow()
        {
            InitializeComponent();
            EssShow();
        }

我们写一个方法   EssShow();里面将获取到BLL的值传给UI的表格里,然后我们要一打开页面就要有数据,那么就放在上述代码里,可以理解为打开页面直接执行。

  public MessShow(){InitializeComponent();EssShow();}private void EssShow(){DataTable dataTable = loginBll.MessShow();dataGridView1.DataSource = dataTable;}

效果图

三.查询

关于查询,其实和显示差不多,只不过多了一个条件,就比如我们在UI要查询食物,那么我们可以使用文本框和按钮查询某一食物

那么我们依然是先写dal层,依旧是链接数据库,并且对要查询的字段做出sql语句,然后将查好的sql语句在给datatable表里就OK了,代码如下:

/// <summary>/// 查询/// </summary>/// <param name="food"></param>/// <returns></returns>public DataTable MessByFood(string food){using (SqlConnection connection = new SqlConnection(connectionString)){connection.Open();string query = "SELECT * FROM Messaage WHERE Food = @Food";using (SqlCommand command = new SqlCommand(query, connection)){command.Parameters.AddWithValue("@Food", food);using (SqlDataAdapter adapter = new SqlDataAdapter(command)){DataTable dataTable = new DataTable();adapter.Fill(dataTable);return dataTable;}}}}

然后通过BLL接收一下传给UI代码如下

 /// <summary>/// 查询/// </summary>/// <param name="food"></param>/// <returns></returns>public DataTable MessByFood(string food){return loginDal.MessByFood(food);}

最后在UI层里,我们先写一个方法接收我们要查询的东西,最后接收我们文本框要查询的内容调用一下就可以了代码如下

 private void button1_Click(object sender, EventArgs e){string foods = textBox1.Text.ToString();LoadMessagesByFood(foods);}private void LoadMessagesByFood(string food){DataTable dataTable = loginBll.MessByFood(food);dataGridView1.DataSource = dataTable;}

效果图我们先看查询前的数据

输入查询的香菜

查询成功

以上就是显示查询的相关教程,需要源码可以联系我免费的

相关文章:

C# winform三层架构 实现增删改查( 显示数据,查询数据 显示,查询篇)

一.留言 上一篇讲解了如何去添加数据&#xff0c;那么本章节我们来做&#xff0c;添加数据后显示&#xff0c;以及咋现有的数据里&#xff0c;查询我们所需要的数据。 二.显示 首先我们看上一篇更新&#xff0c;我们在添加成功后跳转页面显示数据&#xff0c;那么跳转代码只…...

Apache Kylin 系列入门教程

Apache Kylin 是一款开源的分布式分析引擎&#xff0c;主要用于提供SQL接口及多维分析&#xff08;OLAP&#xff09;能力以支持超大规模数据集。它能在亚秒级时间内完成PB级别的数据查询。本文将带你一步步了解如何安装、配置和使用Apache Kylin来构建数据仓库&#xff0c;并执…...

如何识别并防御漏洞扫描类攻击

随着网络安全威胁的不断演变&#xff0c;漏洞扫描已成为黑客常用的手段之一&#xff0c;旨在发现目标系统中的弱点以便进行后续攻击。高防服务作为一种专业的安全防护措施&#xff0c;能够在一定程度上识别并阻止这类攻击行为。本文将深入探讨高防服务是如何识别并防御漏洞扫描…...

冷思考:低代码的AI Agent构建平台能创造价值吗?

当前AI 圈中热点讨论的产品&#xff0c;除了以ChatGPT为代表的Chatbot领域&#xff0c;以及以Character.ai 为代表的AI虚拟社交领域&#xff0c;另一个热度较高的领域就是AI Agent领域。 大模型发展到今天&#xff0c;已经基本达成了一个共识&#xff1a;错综复杂的工作任务无…...

Spring Boot如何自定义注解?

1.什么是注解 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元…...

gin框架传入的gin.context参数是池化的

1. gin.context参数不但是池化的&#xff0c;而且是指针 2. 但是gin.context又实现了context的接口。因此&#xff0c;可以当作context去使用 3. 这就会导致一个很严重的问题&#xff1a; 1. 池化导致了复用后的ctx将会将之前使用的ctx中的内容进行覆盖。 2. 实现了context接…...

AWS注册是否必须使用美元银行卡

亚马逊网络服务(AWS)作为全球领先的云计算平台,吸引了众多企业和个人用户。然而,不少人在注册AWS账户时会产生疑问:是否必须使用美元银行卡?实际上,这种说法并不准确。虽然AWS的主要结算货币是美元,但用户在注册和使用过程中有多种支付方式可供选择。我们结合九河云的分析来告…...

Spring IOC 注入的3种方式

Spring IOC 注入的3种方式 1. 构造器注入&#xff08;Constructor Injection&#xff09;2. Setter方法注入&#xff08;Setter Injection&#xff09;3. 字段注入&#xff08;Field Injection&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路…...

无人机影像基于机器学习的遥感反演及其结果可视化,定量遥感反演结果出图,相关性分析,指标筛选,特征选择

无人机影像或者卫星遥感反演分类模型的建立&#xff0c;反演模型的可视化制图出图&#xff0c;相关性分析&#xff0c;指标筛选&#xff0c;特征选择。代码太多&#xff0c;可企鹅联系&#xff1a; 指标的相关性分析。572 特征选择&#xff0c;贡献性最大的特征。412 LAI反演&…...

Eclipse插件之Java Dependency Viewer(显示类和包的关系图)

Java Dependency Viewer 插件的作用 Eclipse插件Java Dependency Viewer是一个为Java项目提供依赖关系可视化功能的工具。 在复杂的Java项目中&#xff0c;理解和分析类与类之间、包与包之间的依赖关系是非常有用的。Java Dependency Viewer插件通过生成依赖关系图&#xff0c…...

H5小游戏出海,如何流量变现?

根据数据显示&#xff0c; 90%的轻度休闲游戏收入来自广告&#xff0c;即IAA&#xff08;In-App Advertising&#xff09;。使用这种形式进行变现的游戏类型大多以超休闲游戏为主&#xff0c;玩法简单、游戏内容轻度、风格简洁、游戏时间碎片化且即时娱乐性较高&#xff0c;收益…...

轻空间六大专利优势:引领气膜建筑新时代

在绿色建筑和科技创新的驱动下&#xff0c;轻空间不断突破传统建筑的限制&#xff0c;推出了一系列具有前瞻性和高性能的专利技术。通过这些技术&#xff0c;轻空间不仅为建筑行业注入了新动力&#xff0c;也为未来的气膜建筑设定了更高的标准。 低碳建材&#xff1a;“clearsk…...

LeetCode-day37-2940. 找到 Alice 和 Bob 可以相遇的建筑

LeetCode-day37-2940. 找到 Alice 和 Bob 可以相遇的建筑 题目描述示例示例1&#xff1a;示例2&#xff1a; 思路代码 题目描述 给你一个下标从 0 开始的正整数数组 heights &#xff0c;其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i &#xff0c;且存在 i &…...

unity 判断平台

原文链接 Unity中判断平台的方法 Unity提供了一些方法来判断当前运行的平台&#xff0c;其中包括了判断是否为i0S平台。以下是几种常用的方法1.Application.platform Applicaion,platom 是Unity中的一个枚举类型&#xff0c;用于表示当前运行的平台。可以通过比较 Apication,p…...

PyCharm找不到Python了咋办

Python发生了重装的&#xff0c;且新的路径和原有路径不同&#xff0c;就会出现如下的错误&#xff1a; 解决办法&#xff1a; 点开PyCharm菜单的File/Setting 然后&#xff1a; 有上图的提示&#xff0c;说明需要将原来的venv进行清空。 如此操作之后&#xff0c;原来的红色…...

BRC-100 协议

BRC-100 协议 BRC-100 是一种基于序数理论的可扩展的去中心化计算协议。 BRC-100 协议会以下面的方式定义。未来所有的 BRC-100 协议栈都应该使用类似的规范来定义。 1. 摘要 BRC-100 协议是一种基于序数理论的可扩展的去中心化计算协议。 2. 抽象 BRC-100 协议本质上描述…...

茶余饭后(六)

年少成长的时候&#xff0c;多遇到一些所谓的“坏人”&#xff0c;“烂人”&#xff0c;其实是好的&#xff0c;因为这些人让你见识到了人性最丑陋的一面&#xff0c;他们让你磨炼了心性&#xff0c;在以后遇到难处理的人或事的时候&#xff0c;能够有一定的心理承受能力。遇见…...

秋招复习笔记——八股文部分:网络IP

终于来到了网络的最后一篇&#xff0c;继续加油&#xff01; IP 知识全家桶 IP 基本认识 IP 在 TCP/IP 参考模型中处于第三层&#xff0c;也就是网络层。 网络层的主要作用是&#xff1a;实现主机与主机之间的通信&#xff0c;也叫点对点&#xff08;end to end&#xff09…...

量化投资基础(四)之AR、MA、ARMA与ARIMA模型

点赞、关注&#xff0c;养成良好习惯 Life is short, U need Python 量化投资基础系列&#xff0c;不断更新中 1 引言 时间序列经典模型主要有: 自回归模型&#xff08;Auto Regressive&#xff0c;AR&#xff09;移动回归模型&#xff08;Moving Average&#xff0c;MA&…...

LVS(Linux Virtual Server)详解

LVS&#xff08;Linux Virtual Server&#xff09;是一个用于负载均衡的开源软件项目&#xff0c;旨在通过集群技术实现高性能、高可用的服务器系统。它运行在Linux操作系统上&#xff0c;并且可以利用内核级的资源来提高性能和稳定性。 思维导图 LVS的工作原理 LVS主要基于Ne…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...