三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

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

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

← 返回列表