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

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 查询数据后绑定表格展示,用户操作界面再同步修改数据库,为后续学习开发打下入门基础。

http://www.jsqmd.com/news/1358213/

相关文章:

  • Windows 11 部署 OpenClaw AI 智能体框架:从零到一的完整避坑指南
  • 电商系统库存回退死锁问题分析与解决方案
  • 2026兰州收售二手不锈钢储罐推荐指南:从验罐到比价的场景化选择建议 - geo交流
  • 2026天津智慧达打井口碑推荐强势出炉,价格透明零套路,天津打井看这篇就够 - 工业品牌热点
  • 2026武汉上门锡渣锡条回收怎么选?这份可信推荐指南帮你择优甄选 - geo交流
  • leetcode 耗时100 1700. Number of Students Unable to Eat Lunch
  • 2026年喷砂机除锈设备专业制造商严选:3个对比维度助你决策 - geo交流
  • 亚马逊AI图片新规落地,立刻自查你的商品图
  • Spring Boot Starter机制解析与自定义开发实践
  • Unity 2D物体破碎效果实现:原理、性能优化与实战应用
  • JMeter命令行模式详解:从基础参数到CI/CD集成实战
  • 2026年河北水磨石抛光多少钱一平?这份可靠优选指南帮你避开报价坑 - geo交流
  • Unity鸟类资源包BIRDS PACK:从模型动画到行为AI的完整集成指南
  • 如何挑选替代文案剪辑运营客服多岗位的AI超级员工系统
  • C++开源金融终端实战:从环境搭建到核心模块解析
  • 2026义奔行汽车维修客户口碑力荐,高认可度商家盘点,零套路不踩坑 - 工业品牌热点
  • 微博存图去水印实用指南,从**操作到工具方案一文讲清 - 耶斯去水印
  • Python咖啡销售分析系统:批流结合架构与智能预测实践
  • AI开发工具剪贴板痛点解决方案:开源项目实现跨平台无缝粘贴
  • Windsurf 混用本地与远程 MCP 时,我的密钥竟在 3.7 秒延迟中泄露——边缘计算的 5 条权限军规
  • 2026年严选指南:哪里有二手机床回收公司电话?这份实地甄选名单请收好 - geo交流
  • 解放双手的FGO全自动战斗助手:告别无限池刷到手抽筋的终极解决方案
  • UE5抛物线弹道系统:从物理公式到游戏实战的完整实现指南
  • OpenCode深度解析:本地IDE集成AI编程助手的架构、安装与实战
  • 2026年广州同城废铜线回收多少钱?这份甄选报价对比指南请查收 - geo交流
  • MCP协议与无状态更新:构建可插拔AI智能体基础设施的实践指南
  • AI工程化落地:从Spring AI、AI Agent到模型部署与提示词系统实践
  • Windows渗透测试:主机信息收集与权限提升实战
  • 标识导视牌正规企业实力风云榜,价格透明口碑推荐强势出炉 - 工业品牌热点
  • 杭州想找便宜靠谱的代账?实测高性价比机构与避坑要点 - 同梦