Files
teaching-design/data/C#/13.md
2026-06-15 00:55:47 -06:00

6.9 KiB

智能温室监控系统——数据持久化与本地存储 教学设计

课题 智能温室监控系统——数据持久化与本地存储
课时 1课时(45分钟)
教学目标 知识目标:理解数据持久化的概念与必要性,掌握SQLite数据库的基本特点,了解ADO.NET数据访问技术在项目中的应用价值。
技能目标:能够在C#项目中引用System.Data.SQLite组件,创建数据库文件与数据表,编写代码实现温湿度数据的插入操作,为项目构建历史数据存储功能模块。
素养目标:培养在项目开发中重视数据管理的意识,养成规范创建数据库结构、注重数据完整性的严谨工作习惯。
教学重难点 重点:SQLite数据库的创建与连接、使用SQLiteCommand执行INSERT语句保存传感器数据。
难点:理解数据库连接字符串的构成、SQL参数化查询的编写方法及其在项目中防止数据异常的作用。
教学资源准备 Visual Studio开发环境、System.Data.SQLite组件安装包、项目前期代码(已实现串口数据读取)、SQLite数据库管理工具(如DB Browser)、教学课件、Arduino温湿度采集硬件。

教学过程

教学环节 教学内容 教师活动 学生活动 设计意图
项目问题引入
(5分钟)
回顾项目已完成功能,提出数据无法保存的实际问题,引出数据持久化需求。 问题驱动
演示运行现有项目程序,关闭后数据消失,提问:"如果温室管理员想查看昨天的温度变化趋势,我们的系统能做到吗?这暴露了什么问题?"
任务发布
发布本课时项目任务:为系统添加历史数据存储功能。
观察思考
观看演示,认识到项目当前的局限性;
需求分析
以项目开发者角色讨论数据保存的重要性,明确本课时要解决的实际问题。
从项目实际运行中发现问题,让学生认识到数据持久化是项目功能完善的必然需求,激发学习动机。
新知探究(关键技术)
(12分钟)
数据持久化概念、SQLite数据库特点、ADO.NET数据访问流程、数据库连接与表结构设计。 概念讲解
讲解数据持久化定义,对比文件与数据库存储方式,说明SQLite轻量级特性适合项目需求;
技术剖析
讲解"连接数据库→创建命令对象→执行SQL语句→关闭连接"的标准流程;
设计演示
演示使用DB Browser创建SensorData表(字段:ID、Temperature、Humidity、RecordTime)。
聆听记录
理解数据库在项目中的定位,记录关键概念;
可视化理解
通过工具直观认识数据库表结构,将抽象的"数据存储"转化为可见的表格形式。
将数据库理论与项目实际需求紧密结合,通过可视化工具降低认知难度,为后续编程实践奠定基础。
代码实现(项目功能开发)
(18分钟)
在项目中引用SQLite组件、编写数据库连接代码、实现数据插入功能。 操作示范
演示通过NuGet安装System.Data.SQLite包,讲解连接字符串格式;
核心编码
带领学生在数据接收事件中编写插入代码,强调参数化查询的写法(使用@Temperature等占位符),说明其防止SQL注入的重要性;
调试指导
演示运行程序,查看数据库文件中是否成功写入数据。
跟随配置
在自己的项目中安装组件,配置数据库路径;
编写代码
在教师脚手架支持下,将数据插入逻辑集成到现有数据接收方法中;
测试验证
运行程序,使用DB Browser打开数据库文件检查数据,体验项目功能的实现。
通过教师演示+学生实践的方式,将数据库操作无缝嵌入到已有项目框架中,完成从"读取显示"到"存储管理"的功能升级。
功能测试与优化
(7分钟)
测试数据存储功能、处理可能的异常情况、优化代码结构。 测试引导
组织学生采集真实温湿度数据并观察数据库记录增长情况;
异常处理
提示学生添加try-catch语句捕获数据库操作异常,演示在连接失败时给出友好提示。
功能验收
以项目测试员角色,检查数据是否准确保存,时间戳是否正确;
代码完善
在提示下添加异常处理代码,提升项目健壮性。
培养学生的测试意识和异常处理能力,体会项目开发中"能用"与"好用"的差别。
总结提升
(3分钟)
总结本课时完成的项目模块、知识要点回顾、展望后续功能。 模块总结
总结本课时为项目增加的核心功能,强调数据持久化是后续数据分析、报表生成的基础;
知识梳理
回顾SQLite使用流程关键步骤;
任务预告
预告下节课将实现历史数据查询与图表展示功能。
自我评估
对照项目任务检查自己的完成情况;
反思记录
记录本课时遇到的问题与解决方法。
帮助学生在项目推进过程中建立知识体系,明确当前进度与后续方向,保持项目学习的连贯性。

板书设计

智能温室监控系统 - 数据持久化模块
├─ 核心任务:保存历史温湿度数据
├─ 技术方案:C# + SQLite数据库
├─ 关键步骤:
│   1. 创建数据库与表结构(SensorData表)
│   2. 建立数据库连接(连接字符串)
│   3. 编写INSERT语句(参数化查询)
│   4. 在数据接收事件中调用保存方法
└─ 项目收益:数据可追溯、为分析功能打基础

教学成效与反思

教学成效 结合本课时"为项目添加数据持久化功能"这一阶段目标,约85%的学生能够成功配置SQLite环境并完成基本的数据插入操作,实现了温湿度数据的自动保存功能。学生通过可视化工具验证数据写入,直观感受到项目功能的实质性进步,成就感显著。少数学生在连接字符串路径配置上出现问题,经个别指导后解决。整体上,项目任务驱动下的学习目标达成度较高,学生角色代入感强,课堂参与积极。
教学反思 本课时成功将数据持久化这一重要概念融入"智能温室监控系统"项目的功能扩展中,教学逻辑连贯。通过"现有功能演示→发现问题→引入解决方案"的项目推进方式,学生能够自然理解数据库技术的必要性。不足之处在于,对SQL参数化查询的讲解略显仓促,部分学生对@占位符的理解停留在"照着写"的层面,未充分认识到其防止SQL注入的安全意义。今后应增加一个对比实验环节,演示拼接字符串与参数化查询的差异,强化安全编程意识。此外,可在课前准备阶段提供SQLite组件的安装视频,减少课上配置环境的时间损耗,为功能测试环节留出更充裕的时间。