第3章:数据访问层
第3章:数据访问层
本章任务
- 实现查询学生信息功能
- 实现添加学生成绩功能
- 实现修改学生信息功能
本章目标
掌握使用 using 释放对象
会使用 SqlParameter 给SQL传递参数
会使用 ADO.NET 调用存储过程
本章内容
使用using
使用Connection,如何保证连接关闭?
使用using 释放Connection对象
using的用法:
- 用法一:导入命名空间
- 用法二:释放对象占用的资源
- 如Connection、DataReader 、 FileStream……
使用using 释放SqlConnection
使用using 释放SqlDataReader
using 的本质
使用 SqlParameter
拼接SQL的方法
方式1:
方式2:
SQL注入:
拼接SQL语句的弊端:
- 弊端一:不美观,而且容易出现错误
- 弊端二:安全性差,容易被SQL注入攻击
提示:
参数化查询是能有效避免上述弊端的执行SQL 语句的方式
使用 @ 构造参数化SQL 命令:
SqlParameter 对象
和“@”修饰的参数一一对应,用来替换该参数.
SqlParameter 的属性:
属性 | 说明 |
---|---|
DbType | 对应数据库的数据类型 |
Direction | 参数是只可输入、只可输出、双向或存储过程返回值参数 |
IsNullable | 参数是否接受空值 |
ParameterName | 参数的名称 |
Size | 参数对应数据的最大大小 |
SqlDbType | SQL Server 数据库的数据类型 |
Value | 参数的值 |
使用SqlCommand 执行参数化SQL 的步骤
- 构造数据库连接对象
- 构造参数化SQL 语句
- 构造 SqlParameter 对象
- 创建SqlCommand 对象, 使用SqlParameter 对象填充数据
- 打开数据库连接,执行SqlCommand 命令
1 | /// <summary> |
在.NET中调用存储过程
数据访问方法的安全性:
本章总结
- using语句用于释放系统资源
- 执行参数化SQL 语句的步骤
- ADO.NET调用存储过程
课后作业
1.加载年级和科目
- 添加“查看成绩信息”窗体,在该窗体中,加载年级和科目下拉列表
- 使用using 释放资源
2.查询学生信息
- 实现学生信息按“年级”和“姓名”查询功能,支持按“姓名”模糊查询
- 使用using 释放连接资源
3.添加学生成绩
- 单击“添加学生成绩”菜单,弹出查询学生窗体
- 右键单击学生记录,弹出快捷菜单
- 单击快捷菜单,弹出添加学生成绩窗体
4.调用存储过程修改学生信息
- 单击列表中的学生在窗体下方显示学生信息
- 单击“修改”可更新学生信息,同时列表刷新
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 广创科技教育-Blog!
评论