7.1 数据访问概述
在网站开发的过程中,如何存取数据库是最常用的部分,.NET Framework提供了多种存取数
据库的方式。
主要包括以下五个对象:
Connection对象——用来连接数据库
Command对象——用来对数据库执行SQL命令,如查询语句
DataReader——用来从数据库中返回只读数据
DataAdapter——用来从数据库中返回数据,并填充到DataSet对象中,还要负责保证
DataSet对象中的数据和数据库中的数据保持一致
DataSet对象——可以看做内存中的数据库。
在ASP.NET 2.0 中,增加了多种数据源控件和数据绑定控件。数据源控件封装所有获取和处
理数据的功能,主要包括连接数据源,使用select、update、delete、insert等SQL语句获取和
管理数据等。
在ASP.NET 3.5中,引入了一种新技术 LINQ。这种技术使得查询等数据访问操作完全与.NET
语言整合,实现了通过.NET语言访问数据库的功能。
7.2 建立SQL Server Express数据库
SQL server express是微软开发的sql server系列数据库管理系统中的免费版,适用于学习用
途及中小型企业的数据库开发应用。
1.连接字符串:
连接字符串包含了访问数据库的相关信息,通常存储在Web.config文件的
<connectionStrings>元素中,并且需要根据不同类型数据库实例和不同的身份验证形式进
行配置。
在微软数据库管理系统中,数据库实例的类型包括 SQL Server、SQLEXPRESS和
LocalDB实例。
SQL Server数据的身份验证有Windows验证和SQL Server验证两种模式。
7.3 使用数据源控件实现数据访问
为实现不同的数据源进行数据访问的功能,基于VSC 2019的ASP.NET提供了多种不同的数据源控件,包括EntityDataSource、LinqDataSource、ObjectDataSource、SiteMapDataSource、SqlDataSource、XmlDataSource。
7.4 使用LINQ实现数据访问
LINQ集成于.NET Framework中,提供了统一的语法实现多种数据源的查询和管理。它于.NET支持的编程语言整合为一体,使得数据的查询和管理直接被嵌入在编程语言的代码中,这样,就能充分利用VS 2019的智能提示功能,并且编译器也能检查查询表达式中的语法错误。
7.4.1 语言集成查询 LINQ
LINQ的使用有两种语法格式:查询语法和方法语法,其中,方法语法因为广泛使用
ambda表达式,所以又称为使用Lambda表达式的点符号语法。
1.查询语法:
类似于SQL语句,包含8个基本子句。
from子句——指定查询操作的数据源和范围变量。
select子句——指定查询结果的类型和表现形式
where子句——指定筛选操作的逻辑条件
group子句——对查询结果进行分组
orderby——对查询结果进行排序
join子句——连接多个查询操作的数据源
let子句——创建用于存储查询表达式中的子表达式结果的范围变量。
into子句——提供一个临时标识符,该标识符可以在join、group或select子句
中被引用。
LINQ的查询语法必须以from子句开始,以select或group子句结束,中间可以包含
一个或多个from、where、orderby、group、join、let等子句。
2.方法语法:
实际上,在项目编译时,VS 2019会把LINQ的查询语法转换为方法语法。
常用的方法:
select方法——对应select子句
where方法——对应where子句
groupby方法——对应group...by或group...by...into子句
orderby——对应orderby子句
orderbyDescending方法——对应orderby...descending子句
join方法——对应join...in...on...equals...子句
7.4.2 Entity Framework概述:
核心是实体数据模型,能将关系数据库映射为类对象,在借助LINQ技术使开发人员以操
作对象的方式实现对数据的查询、修改、插入和删除等操作。
数据库对象 | Entity Framework对象 |
---|---|
数据库 | DbContext类 |
表 | 实体类 |
属性 | 属性 |
外键关系 | 关联 |
存储过程 | 方法 |
7.4.3 LINQ to XML概述:
可以在.NET编程语言中吃醋李XML结构的数据。
常用的LINQ to XML类:
XDocument类——用于操作XML文档,调用Save方法可建立XML文档
XDeclaration类——用于操作XML文档中的声明,包括版本、编码等。
XComment类——用于操作XML文档中的注释
XElement——用于操作XML文档中可包含任意多级别子元素的元素。其中,Name
属性用于获取元素名称,value属性用于获取元素的值,load方法用于导入XML文档到内
存,并创建XElement实例。
XAttribute类——用于操作XML元素的属性,是一个与XML元素关联的名称/值对。