news 2026/8/9 8:24:56

C# WinForms+SQL Server 一周学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# WinForms+SQL Server 一周学习笔记

前言

零基础一周理解 C# 桌面开发两大核心:WinForms 表格控件、SQL Server 数据库,适合新手入门。

一、WinForms 两大表格控件

1. ListView 轻量列表控件

1.1 核心属性

  1. View视图:Details表格(最常用)、List / 大小图标 / 平铺
  2. Columns:表头;Items:行集合,ListViewItem代表一行
  3. 表格增强:FullRowSelect整行选中、GridLines网格线、CheckBoxes复选框、MultiSelect多选

1.2 性能优化

批量增删数据用BeginUpdate()/EndUpdate()防界面卡顿; 上万条数据开启VirtualMode虚拟模式,按需渲染节省内存。

1.3 常用功能代码

  1. 添加数据
listView1.View = View.Details; listView1.Columns.Add("姓名",100); ListViewItem item = new ListViewItem("张三"); item.SubItems.Add("21"); listView1.Items.Add(item);
  1. 批量添加
listView1.BeginUpdate(); for(int i=0;i<5000;i++) listView1.Items.Add(new ListViewItem(i+"")); listView1.EndUpdate();
  1. 删除勾选行:遍历CheckedItems弹窗确认后 Remove
  2. 列头排序:自定义ListViewItemComparer比较器,绑定ColumnClick切换升降序
  3. 图标:绑定SmallImageList,构造 Item 传入图片索引

2. DataGridView 业务专用表格(项目首选)

2.1 核心属性

  • 样式:AlternatingRowsDefaultCellStyle奇偶行变色;EnableHeadersVisualStyles=false自定义表头颜色
  • 交互:ReadOnly只读;FullRowSelect整行选中;AllowUserToAddRows=false隐藏空白新增行
  • 性能:DoubleBuffered=true消除滚动闪烁

2.2 4 种数据绑定(新手重点)

  1. Table(推荐新手):直接操作表行,控件自动刷新
  2. List <实体类>:修改数据需重新赋值 DataSource 刷新
  3. 手动添加列行:无数据库纯前端展示

2.3 自定义特殊列

按钮列、下拉框列、复选框列、图片列,满足管理系统操作需求。

2.4 增删改操作

  1. 修改:直接赋值row.Cells["列名"].Value
  2. 删除选中行:遍历SelectedRows,跳过空白新增行执行 Remove
  3. 批量删除:倒序循环行,搭配SuspendLayout()优化卡顿

2.5 高频事件

CellContentClick(按钮点击)、CellBeginEdit(编辑)、SelectionChanged(切换选中行)

控件选型对比

  • ListView:多视图、图标友好,适合简单列表、文件展示
  • DataGridView:原生数据绑定、支持编辑 / 按钮列,适合订单、人员、库存业务系统

二、SQL Server T-SQL 数据库基础

1. 基础概念

  • DB 数据库、DBMS 数据库管理系统、DBA 管理员;T-SQL 是 SQL Server 专属增强语言
  • 文件:.mdf主文件、.ldf日志文件;系统库:master、tempdb、model、msdb
  • 常用数据类型:int、varchar/nchar 字符串、money 金额、bit 布尔、DateTime 时间;身份证必须存字符串

2. 四大数据完整性(约束核心)

  1. 实体完整性(行唯一)主键(唯一 + 非空,一张表仅 1 个)、唯一约束(允许 1 个 NULL)、自增标识列
  2. 域完整性(列合法)数据类型、非空、默认值、Check 检查(年龄 18-25、性别仅男女)
  3. 引用完整性(多表关联)外键:外键表关联主键表,必须先存在主键数据才能插入外键
  4. 自定义完整性:高阶拓展

3. 增删改查 CRUD

  1. 新增INSERT:指定列 / 全列插入,自增列不能手动赋值
  2. 修改UPDATE:必须带WHERE,否则全表更新
  3. 删除
  • DELETE:记录日志,可回滚,自增不重置
  • TRUNCATE:清空全表,速度更快,自增重置
  • 查询:
  • select top N 列名 as 别名 from 表 where 条件(like/in/between/is null) group by 分组 order by 列 desc
  • 函数:字符串截取、日期格式化、数值四舍五入;UNION ALL合并查询结果(不去重,性能更高)

4. 多表联查

  1. 内连接INNER JOIN:只返回两边匹配数据
  2. 左连接LEFT JOIN:保留左表全部数据,无匹配填充 NULL(最常用)
  3. 右连接 / 全连接 / 交叉笛卡尔积(极少用)
  4. 自连接:同表别名关联(员工 + 直属领导)

5. 子查询 & 事务

  1. 子查询:单行单列(=/>/<)、多行单列(IN)、多列作为虚拟表
  2. 事务:保证多步修改原子性(转账场景),出错回滚、无错提交
begin transaction --多条update/insert if @@error<>0 rollback else commit

三、总结

本周我系统学习了 C# WinForms 桌面开发与 SQL Server 数据库基础,理清了前后端数据交互完整流程。前端掌握 ListView、DataGridView 两大表格控件,分清两者适用场景,学会数据绑定、批量加载优化、增删改查与自定义列开发等知识点。后端理解 T-SQL 核心语法,掌握数据表约束、基础增删改查、多表联查与事务,理解外键关联、数据完整性的作用。整体学习由浅入深,从界面渲染到数据库存取形成闭环,明白了桌面程序开发逻辑:SQL 查询数据后绑定表格展示,用户操作界面再同步修改数据库,为后续学习开发打下入门基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/9 8:24:16

GraphRAG 召回率反超传统 RAG 30%?我的 Grok 实验拆穿了这场幻觉盛宴

GraphRAG 召回率反超传统 RAG 30%?我的 Grok 实验拆穿了这场幻觉盛宴 知识图谱增强检索的诱惑与陷阱:从技术狂欢到商业落地的冷思考 前言:一场由召回率引发的生产事故 灰度上线的第3天,运维突然在群里我:"你们新上线的知识库问答,怎么把竞品财报数据编进我们年报了?&q…

作者头像 李华
网站建设 2026/8/9 8:23:51

HTML转Markdown安全实践:防范XSS攻击的纵深防御方案

1. 项目概述&#xff1a;为什么html-to-markdown转换需要安全实践&#xff1f; 最近在做一个内容管理系统的重构&#xff0c;其中有个核心需求是把用户在前端富文本编辑器里提交的HTML内容&#xff0c;转换成Markdown格式存储和展示。一开始觉得这很简单&#xff0c;不就是找个…

作者头像 李华
网站建设 2026/8/9 8:21:31

Nacos动态配置热更新:原理、实践与生产级管控

你有没有遇到过这样的场景&#xff1a;凌晨两点&#xff0c;线上服务突然告警&#xff0c;排查后发现是某个配置项需要紧急调整。按照传统做法&#xff0c;你需要修改配置文件&#xff0c;然后重启整个应用集群。但重启意味着服务中断&#xff0c;用户会感知到卡顿甚至失败&…

作者头像 李华
网站建设 2026/8/9 8:18:27

蚁群算法在物流调度中的MATLAB实现与优化

1. 项目概述&#xff1a;当蚁群遇上物流调度在物流配送领域&#xff0c;如何用最少的车辆完成所有客户的货物配送&#xff0c;同时满足每个客户指定的时间窗要求&#xff0c;这个经典难题被称为带时间窗的车辆路径问题&#xff08;VRPTW&#xff09;。我在最近的一个冷链药品配…

作者头像 李华
网站建设 2026/8/9 8:17:03

HHO-GRNN混合模型:多特征预测的高效优化方案

1. 项目概述&#xff1a;HHO-GRNN多特征预测模型解析在工程预测和数据分析领域&#xff0c;如何建立高精度的多变量非线性关系模型一直是核心挑战。传统神经网络常面临参数选择困难、收敛速度慢等问题。本文将介绍一种结合哈里斯鹰优化算法(HHO)与广义回归神经网络(GRNN)的混合…

作者头像 李华
网站建设 2026/8/9 8:16:39

定制社交软件开发:从技术挑战到实战经验

1. 定制社交软件的真相与挑战十年前我刚入行时接过一个定制社交软件的私活&#xff0c;客户是某连锁健身房老板&#xff0c;需求听起来很简单&#xff1a;"就像微信朋友圈&#xff0c;但只给我的会员用&#xff0c;再加个健身打卡功能"。当时年轻气盛&#xff0c;觉得…

作者头像 李华