在之前的文章中介绍了使用 ASP.NET MVC 来开发一个博客系统, 并且已将初具雏形, 可以查看文章列表页面, 也可以点击文章列表的其中一篇文章查看详情, 这已经完成了最开始需求分析的读者的查看列表和查看文章两个需求, 但是现在最大的问题是文章数据仍然是 "静态" 的.
所有数据被保存在内存中, 系统在初始化时会自动添加被硬编码在代码文件中的数据, 服务器每次重新启动都只会保留这些数据, 并且没有提供 "作者" 的管理接口,"作者" 没法来管理这些数据, 哪怕是可以进行管理也没用, 因为服务器重启后数据就不存在了, 这才是最糟糕的. 最初使用 html 文件保存的文章虽然不易修改, 但至少数据以文件的形式被保存在硬盘上, 只要硬盘不坏, 那么数据永远不会丢失, 但是现在不一样了, 要如何对数据进行持久化呢?
数据库是最好的选择 (有的时候也会需要使用文件来管理数据, 需要根据实际的应用场景来选择, 如配置文件), 当然也可以使用文件的方式来管理数据, 其实数据库也是一种特殊的文件, 只不过数据库文件可以特有的访问方式来对数据进行管理, 如插入, 删除, 更新和快速查找等等, 这些功能都不需要自己编写, 它们是数据库管理系统提供的 (DBMS,Database Management System), 数据库又存在很多种类型, 在一般企业级应用中常用的是关系型数据库, 主要有 SQL Server,MySQL,Oracle,PostgreSQL 等, 它们都能够为应用程序的数据存储提供可靠保证.
对于 ASP.NET 来说最常用且提供支持最多的当然是 SQL Server, 但是由于 MySQL 和 PostgreSQL 都是开源的, 一定程度上可以对其免费使用, 所以也经常被. NET 开发人员使用, 本系列文章将使用 SQL Server 和 MySQL 两种数据库来实现数据存储功能, 同时也可以看出不同数据库对一个应用程序会有哪些影响.
本文通过以下两点来介绍如何在 ASP.NET 中使用 SQL Server 数据库:
●使用 SQL Server 存储数据
●在 ASP.NET 中访问 SQL Server
使用 SQL Server 存储数据
1. 使用 SQL Server 创建 Blog 数据库, 以及 Posts 表, 表字段对应 Post 类 (如何使用 SQL Server 不在本系列文章范围内, 所以会忽略很多细节):
2. 在表中添加数据:
在 ASP.NET 中访问 SQL Server
文章前面说过数据库其实也是一种特殊的文件, 然后通过特有的访问方式来使用它, 那么 ASP.NET 要如何连接并使用 SQL Server 呢? ADO.NET.(ADO.NET 更多信息参考:)
现在修改原有通过静态数组获取数据的 BlogRepository, 使用 ADO.NET 来获取数据库中的数据, ADO.NET 相关的类在 System.Data.dll 程序集中, 而 ADO.NET 对于不同的数据源提供了不同的数据提供器, 它们用于连接不同的数据源:
- SQL Server:System.Data.SqlClient
- OleDb: System.Data.OleDb
- Odbc: System.Data.Odbc
- Oracle: System.Data.OracleClient
在本例中使用的是 SQL Server, 所以需要 System.Data 以及 System.Data.SqlClient 的支持, System.Data 在创建项目时以及默认存在.
1. 通过 Nuget 包管理器安装 System.Data.Sqlclient 库:
2. 修改 BlogRepository, 让其从数据库中获取数据:
上面代码中有三个重要的对象分别是 SqlConnection,SqlCommand,SqlDataReader, 它们的作用分别是通过连接字符串连接数据库, 通过 SQL 语句及参数执行 SQL(也可以执行存储过程), 读取执行 SQL 返回的结果.
3. 程序执行结果:
小结
本章介绍了如何使用数据库来管理数据, 然后通过 ADO.NET 来连接数据库, 从数据库中获取文章数据, 然后显示到页面上, 现在这个应用程序已经 "动" 起来了, 仅需要更新数据库的内容, 页面内容也将随之而变. 但存在一个问题就是每一次从数据库获取数据都要写 SQL 语句然后从返回的数据集中获取相应字段的数据用来创建实体对象. 有没有更好的方法来解决?
参考:
欢迎添加个人微信号: Like 若所思.
来源: http://www.bubuko.com/infodetail-3203316.html