机房收费系统5之视图

前端之家收集整理的这篇文章主要介绍了机房收费系统5之视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近遇到了查两个表的情况,首先我想到的是用存储过程,但是如果需要两个查询结果的值的话,必须@H_301_2@根据存储过程查询语句的顺序取你要的Table@H_301_2@,例如@H_301_2@DataSet.Tables[0]@H_301_2@,@H_301_2@DataSet.Table[1]@H_301_2@获取想要的@H_301_2@Table@H_301_2@值,比较麻烦。早就听说视图了,想着可能比存储过程简单多了,查询了一下资料,确实是比存储过程方便简单快捷多了。@H_301_2@

1.@H_301_2@自己的理解:视图就是从若干个基本表或者其他视图构造出来的虚拟表。也可以只取某个表的几个字段。@H_301_2@同真实的表一样,视图包含一系列带有名称的列和行数据,能够进行的一般操作都可以应用于视图,例如查询,插入,修改删除操作等@H_301_2@。@H_301_2@

@H_301_2@

2.@H_301_2@简单应用@H_301_2@--@H_301_2@机房收费系统@H_301_2@stucheck@H_301_2@cash@H_301_2@

需要查询两个表:卡表和学生表。

(@H_301_2@1@H_301_2@)新建视图@H_301_2@--@H_301_2@在自己的数据库下找到视图@H_301_2@

@H_301_2@

(2@H_301_2@)选择涉及到的表或视图@H_301_2@

@H_301_2@(@H_301_2@3@H_301_2@)在表中选择想要的字段@H_301_2@

@H_301_2@

@H_301_2@(@H_301_2@4@H_301_2@)点击保存并重新命名@H_301_2@

@H_301_2@

(@H_301_2@5@H_301_2@)编写代码(和普通表没有区别,直接把表名改为视图名就行)@H_301_2@@H_301_2@

@H_301_2@@H_301_2@

Public Function Querystudent(enStudent As StudentEntity) As DataTable Implements IStudent.Querystudentinfo

        'Dim student As New StudentEntity              '实例化实体类
        Dim table As New DataTable                    '实例化数据表

        '定义并实例化参数数组,防止sql注入
        Dim paras As sqlParameter() = {New sqlParameter("@Studentno",enStudent.Studentno)}

        '这里用的是视图,把原先的Student_info改为了StuCardView_info
        Dim sqlstr As String = "Select * From StuCardView_info where Stuno= @Studentno"

        '调用sqlHelper类中的ExecSelect()方法来执行查询获取返回值
        table = clssqlHelper.ExecSelect(sqlstr,CommandType.Text,paras)


        Return table
    End Function
详解:原先需要写两个查询语句,一个关于卡表查询的,一个关于学生表查询的,现在只需要写一个查询语句即可。

3.@H_301_2@易错处:@H_301_2@@H_301_2@@H_301_2@

@H_301_2@@H_301_2@@H_301_2@

可以看看这个图和上图的区别,第一副图是表之间有关联,卡表与学生表之间有外键,第二图没有建立关联。@H_301_2@@H_301_2@@H_301_2@@H_301_2@

区别:第一副图显示结果(查卡号为66@H_301_2@):@H_301_2@

@H_301_2@

这幅图显示的是我要的正确结果。@H_301_2@@H_301_2@

第二幅图显示结果:

会把学生表所有的数据显示出来,卡号是卡表中的对学生表不起作用,所以会显示全部并且给所有条记录的卡号都赋值成了@H_301_2@66@H_301_2@号。@H_301_2@

总结:经过实践,视图在查询两个表,比存储过程易操作。只查询表中的某几个字段也可以,方便快捷,真的是挺实用的。但是也有缺点,@H_301_2@操作视图会比直接操作基础表要慢,所以我们尽量避免在大型表上创建视图@H_301_2@@H_301_2@。这才刚刚开始了解,还需要继续深刻的研究。@H_301_2@

Ps@H_301_2@:有理解不对的地方请多多指教。@H_301_2@

原文链接:https://www.f2er.com/vb/257952.html

猜你在找的VB相关文章