c#数据库: 11.分组统计学生信息/ 12.视图查询

该例以学生信息表为例,将学生信息按年级和性别分组,统计各年级男生和女生的人数、总成绩和平均成绩,并将查询结果按平均成绩降序排列。下图是原数据表staq:

【C#实现过程】
(1)创建一个名为StudentGroup的窗体应用程序,为窗体添加一个DataGridView控件(命名为dGVStudent)。
(2)重写窗体OnLoad事件函数,添加查询代码如下: 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace StudentGroup
{public partial class Form1 : Form{public Form1(){InitializeComponent();}protected override void OnLoad(EventArgs e){//创建数据库连接SqlDataAdapter adapter = new SqlDataAdapter(@"SELECT grade AS 年级,sexy AS 性别,COUNT(*) AS 人数,SUM(result) AS 总成绩,AVG(result) AS 平均成绩 FROM staq_info GROUP BY grade,sexy ORDER BY 5 DESC","Data Source=.\\SQLExpress;Database=aq;Trusted_Connection=true;");DataSet dataSet = new DataSet();                       //创建数据集adapter.Fill(dataSet);                                 //用查询结果填充数据集dGVStudent.DataSource = dataSet.Tables[0];             //将数据集绑定到控件}}
}

本实例代码主要通过SQL语句实现对数据表的分组统计和排序。首先创建SqlDataAdapter执行数据表查询操作,然后将查询结果填充到DataSet对象中,最后将DataSet中的数据表绑定到DataGridView控件上。
在数据表的查询中,一旦进行了分组,就只能得到分组的相关信息。在SQL语句中主要通过COUNT、SUM、MAX、MIN和AVG五个关键字获取分组的相关信息,其中,COUNT表示记录数目,SUM表示字段值求和,MAX表示字段最大值,MIN表示字段最小值,AVG表示字段平均值。对数据表进行分组主要通过GROUP BY关键字。实现对某一字段进行排序则使用ORDER BY关键字,如果需要按降序排列,则在后面加上DESC关键字。实例代码的SQL语句中还用到了AS关键字,该关键字用于为字段的统计结果设置一个别名,当查询结果在控件上显示时,可以为该字段对应的列记录显示该别名 

 运行C#代码:

---------------------------------视图查询 ----------------------------

以原数据表staq为例,创建一个含有学号和姓名的视图,将视图中的信息设置为按学生成绩降序排列,且只显示前9条信息。通过查询该视图可直接获取成绩排在前9名的学生学号和姓名

1.新建视图  2.添加数据表

 

3.将staq_info表中的id和name字节添加到视图中,并按成绩(result)降序排列 :

SELECT TOP (50) PERCENT id AS 学号, name AS 姓名

FROM dbo.staq_info ORDER BY result DESC

  1. 百分比与行数TOP (50) PERCENT会选取表中大约50%的行数。如果表中的行数是一个奇数,那么TOP (50) PERCENT将四舍五入到最接近的整数。
  2. 排序:由于您使用了ORDER BY result DESC,结果将按照result列的值从高到低排列。
  3. 列重命名AS关键字用于为列指定别名,这样查询结果中的列标题将显示为“学号”和“姓名”,而不是原始的列名idname

  4.视图保存名为:staqView 

5.重写窗体的OnLoad事件函数,添加查询代码如下:
 protected override void OnLoad(EventArgs e)
 {
     //创建数据集连接
     SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM staqView",
 "Data Source=.\\SQLExpress;Database=aq;Trusted_Connection=true;");
     DataSet dataSet = new DataSet();                       //创建数据集
     adapter.Fill(dataSet);                                 //用查询结果填充数据集
     dGVStudent.DataSource = dataSet.Tables[0];             //将数据集绑定到控件
 }

6.运行C#代码:


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3588S和ARM阵列服务器在虚拟化云平台的应用

RK3588是瑞芯微2021年底推出的首款高端8nm旗舰芯片,而RK3588S 则是针对消费端市场在RK3588基础上缩减了部分外围接口,CPU、GPU和NPU等主要参数得到了保留,主要应用范围为高端ARM平板、ARM笔电产品,会议平板类、ARM服务器、智能机器…

HTML_CSS学习:常用的字符属性

一、字体大小 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>字体大小</title><style>/*body{*//* font-size: 20px;*//*}*/.atguigu1{font-size: 40px;}.atguigu2{font-size: 30px;…

如何批量删除多个不同路径的文件但又保留文件夹呢

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 1、我准备了三个文件夹&#xff08;实际操作的时候可能是上百个文件夹&#xff0c;无所谓&#xff09;&#xff0c;里面都放了两个图片 2、然后打开工具&am…

【Gateway】网关集成Knife4j—swagger接口文档

文章目录 前言一、相关配置1.网关gateway配置①.网关增加配置 pom文件②.网关增加配置 SwaggerHandler③.网关增加配置 SwaggerResourceConfig④.网关增加配置 SwaggerConfig 2.网关过滤器 二、接口文档使用1.访问文档2.查看文档 总结 前言 在日常开发中是需要前后端联调的&am…

09_Scala函数和对象

文章目录 函数和对象1.函数也是对象 scala中声明了一个函数 等价于声明一个函数对象2.将函数当作对象来用&#xff0c;也就是访问函数&#xff0c;但是不执行函数结果3.对象拥有数据类型(函数类型)&#xff0c;对象可以进行赋值操作4.函数对象类型的省略写法&#xff0c;也就是…

HTML+CSS从入门到精通(三)

&#xff08;9&#xff09;右侧搜索框 <!--这里就是表示HTML5--><!DOCTYPE html><html lang"zh" xmlns:th"http://www.thymeleaf.org"xmlns:v-bind"http://www.w3.org/1999/xhtml"xmlns:v-on"http://www.w3.org/1999/xhtml&…

变电站综合自动化系统:Modbus-PLC-645转IEC104网关方案

前言 电力行业作为关系国计民生的重要基础产业&#xff0c;是关系千家万户的公用事业。但是要做好电力行业安全保障工作的前提&#xff0c;是需要对应的技术人员详细了解电力工业使用的系统、设备以及各类协议的安全特性&#xff0c;本文将主要介绍IEC 104协议的定义和钡铼技术…

mac用Homebrew安装MySQL并配置远程登录

1. 简介 MySQL 是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典 MySQL AB 公司开发&#xff0c;后被 Oracle 公司收购。MySQL 使用 SQL&#xff08;Structured Query Language&#xff09;作为查询语言&#xff0c;并提供了强大的功能和性能…

Vue组合式API进阶:深入了解进阶API

目录 引言 进阶API介绍 1.shallowRef() 2.triggerRef() 3.customRef () 4.toRow() 引言 在Vue 3中&#xff0c;组合式API为开发者提供了更加灵活和直观的方式来组织和管理组件的逻辑。除了基础的ref和reactive之外&#xff0c;Vue还提供了许多高级API函数&#xff0c;帮助我…

C++——STL容器——vector

vector是STL容器的一种&#xff0c;和我们在数据结构中所学的顺序表结构相似&#xff0c;其使用和属性可以仿照顺序表的形式。vector的本质是封装了一个动态大小的数组&#xff0c;支持动态管理容量、数据的顺序存储以及随机访问。 1.前言说明 vector作为容器&#xff0c;应该…

深入理解C++中的仿函数(Functors)

在C中&#xff0c;仿函数或函数对象是通过重载operator()的类实例来模拟函数行为的对象。这种特性使得C的对象可以像函数一样被调用&#xff0c;从而为编程提供了极大的灵活性和强大的功能。 1. 什么是仿函数&#xff1f; 仿函数是一个类&#xff0c;它定义了一个或多个opera…

【设计模式】使用策略模式优化表单校验逻辑

什么是策略&#xff1f; 所谓策略&#xff0c;就是根据已知条件决定要做出怎样的行为。 举个栗子&#xff1a;我要实现一个表单校验功能&#xff0c;要求 name 不能为空且长度必须大于 2 且小于 4&#xff0c;age 不能为空且必须为纯数字。 这样的判断逻辑直接用 if-else 就…

安全再升级,亚信安慧AntDB数据库与亚信安全二次牵手完成兼容性互认证

日前&#xff0c;湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧&#xff09;的产品与亚信科技&#xff08;成都&#xff09;有限公司&#xff08;简称&#xff1a;亚信安全&#xff09;再次携手&#xff0c;完成亚信安慧AntDB数据库与亚信安全IPoE接入认证系统…

R和Python市场篮分析算法及行为分析模型

&#x1f3af;要点 行为数据分析&#xff1a;&#x1f3af;线性统计研究生学业表现&#xff1a;&#x1f58a;绘制测试分数配对图 | &#x1f58a;构建简单线性回归模型&#xff0c;拟合数据 | &#x1f58a;构建多线性回归&#xff0c;三维可视化数据拟合模型 | &#x1f58a…

重学数论1:不定方程的引入

研究的对象&#xff1a;不定方程 文章目录 研究的对象&#xff1a;不定方程不定方程引入&#xff1a;裴蜀定理证明&#xff1a;欧几里得算法证明&#xff1a;充分性证明&#xff1a;必要性证明&#xff1a; 战术总结&#xff1a; 不定方程引入&#xff1a; 不定方程&#xff0…

「 网络安全常用术语解读 」SBOM主流格式SPDX详解

SPDX&#xff08;System Package Data Exchange&#xff09;格式是一种用于描述软件组件&#xff08;如源代码&#xff09;的规范&#xff0c;它提供了一种标准化的方法来描述软件组件的元数据&#xff0c;包括其许可证、依赖项和其他属性。SPDX最初由Linux基金会于2010年发起&…

复旦微JFM7VX690计算后IO接口模块,用于雷达信号处理、数据处理等需要高速密集计算的应用场景

计算后IO接口模块 1 介绍 1.1 产品概述 计算后IO接口模块主要由复旦微JFM7VX690型FPGA、国产以太网收发器YT8521、国产BMC芯片GD32F450、国产CPLD芯片EF2L45BG256B、国产内存颗粒等主要芯片组成&#xff0c;采用标准6U VPX尺寸设计。 本计算后IO接口模块主要用于雷达信号处…

Java面试八股之Java中数组有没有length()方法?String呢?为什么?

Java中数组有没有length()方法&#xff1f;String呢&#xff1f;为什么&#xff1f; 数组&#xff1a; 数组没有名为length()的方法&#xff0c;但有一个属性叫做length。可以通过数组名直接访问这个属性来获取数组的长度&#xff08;即元素个数&#xff09;。这是一个整数值&…

《Redis使用手册之有序集合》

《Redis使用手册之有序集合》 目录 **《Redis使用手册之有序集合》****ZADD&#xff1a;添加或更新成员****ZREM&#xff1a;移除指定的成员****ZSCORE&#xff1a;获取成员的分值****ZINCRBY&#xff1a;对成员的分值执行自增或自减操作****ZCARD&#xff1a;获取有序集合的大…

【redis】Redis数据类型(三)List类型

目录 List类型介绍特点 List数据结构附&#xff1a;3.2以前的版本(介绍一下压缩列表和双向链表)压缩列表ZipList双向链表LinkedList 常用命令lpush示例 lpushx示例 rpush示例 rpushx示例 LPOP示例 RPOP示例 BLPOP非阻塞行为阻塞行为相同的 key 被多个客户端同时阻塞在 MULTI/EX…