视图,是什么nie,在我们小学的时候,就接触过视图的概念,那时候天总是那么蓝,云总是那么潇洒,给定一个立体图形,让小伙伴画出这个图形的三视图,即---主视图,俯视图,左视图,时过境迁,她再一次出现在我面前,这一次,她以另一种身份和我相约在.Net版机房收费系统,现在让我们来看看她的又一神秘面纱的背后,蕴藏着什么样的知识呢?
视图,百度百科对她这样进行阐述,在SQL中,视图是虚表,是从一个或几个基本表或者是视图中导出来的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据,视图是原始数据库数据的一种变化,是查看表中数据的另外一种方式,可以将视图看成是一个移动的窗口,通过她可以看到我们想要的数据,视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中,那些用于产生视图的表叫做该视图的基表,接下来,以机房收费系统中查看余额为例,看看视图在我们的实际应用中是如何在她的舞台动情演绎。
首先,我们来看一下,学生查看余额中的逻辑:
视图,百度百科对她这样进行阐述,在SQL中,视图是虚表,是从一个或几个基本表或者是视图中导出来的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据,视图是原始数据库数据的一种变化,是查看表中数据的另外一种方式,可以将视图看成是一个移动的窗口,通过她可以看到我们想要的数据,视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中,那些用于产生视图的表叫做该视图的基表,接下来,以机房收费系统中查看余额为例,看看视图在我们的实际应用中是如何在她的舞台动情演绎。
首先,我们来看一下,学生查看余额中的逻辑:
第一:判断卡号是否存在;
第二:从学生表和卡表中读取相应信息;
接着,看看如何创建视图,如下图所示:
a、右击新建视图;
b、选择涉及到的表或视图,学生查看余额中涉及到卡表和学生表;
c、选择我们需要的字段,在这里,你也可以把字段都写上,后续的功能中如果有类型的从卡表和学生表中读取信息的,直接调用该视图即可。
d、保存即可,视图的命名规范为 视图名 = V + “_” + 名称。
那我们的D层的代码改如何写,和以前直接查表的方法有什么不一样呢?代码展示如下:
<span style="font-size:18px;">'********************************************** '文 件 名: V_StuCardViewDAL '命名空间: DAL '内 容: 学生查看余额,从卡表和学生表读取相关信息 '功 能: 学生查看余额 '文件关系: '作 者:丁国华 '小 组:宝贝计划 '生成日期: 2014/7/24 11:30:16 '版本号:V2.0 '修改日志: '版权说明: '********************************************** Imports System.Data.SqlClient Public Class V_StuCardViewDAL : Implements IDAL.IStuCardView ''' <summary> ''' 学生查看余额,从学生表和卡表里读取相关信息 ''' </summary> ''' <param name="cardNo"></param> ''' <returns></returns> ''' <remarks></remarks> Public Function ReadStuCardinfo(cardNo As String) As List(Of Entity.StuCardViewEntity) Implements IDAL.IStuCardView.ReadStuCardinfo Dim strText As String = "select * from V_StuCardView where cardNo=@cardNo" '从视图V_StuCardView这张虚拟的表中读取相关信息 Dim cmdType As CommandType = CommandType.Text '命令类型 Dim parameter As SqlParameter() '传参 parameter = {New SqlParameter("@cardNo", cardNo)} Dim sqlHelper As New SqlHelper Dim dt As New DataTable Dim myList As List(Of Entity.StuCardViewEntity) dt = sqlHelper.ExecuteReaderTable(strText, cmdType, parameter) myList = EntityHelper.convertToList(Of Entity.StuCardViewEntity)(dt) Return myList End Function End Class </span>一如我们所看到的,使用视图,视图具有简单的特点,就学生查看余额来说,没有使用视图之前,我们需要从卡表和学生表里分别查询相应信息,使用视图之后,直接查询视图即可,视图,简化了我们对数据的理解,也可以简化其操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。使用视图,还有一个好处就是安全,通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。
第二版机房收费系统,未完,待续......