存储过程---留住你的美丽(下),存储过程---留住
继上篇博客,存储过程---留住你的美丽(上),接着叨叨,美丽是留住了,如何让美丽持久惊艳别人的眼球,我们就要开动我们的小脑袋,转一转,想一想,一如上篇博客中所展示的代码一样,需要传十一个参数,各个层之间都需要重复写,键盘累了,坏了怎么办nie?还要重新上京东买,咳咳咳,言归正传,依旧结合机房收费来说,如何让存储过程美丽持久,流年过往,经年不忘......在机房收费系统中,涉及三个组合查询,分别是学生基本信息维护、学生上机状态查看、操作员工作记录;如何让三个组合查询使用同一个存储过程,就需要我们转转小小的脑袋,几经周折,发现,我们可以把表名当成一个参数进行传递,这样,用到不同表的时候,我们只需要变更表名即可,存储过程写法如下所示:
<span style="font-size:18px;"><span style="font-size:18px;">USE [MachineRoomChargeSystem]
GO
/****** Object: StoredProcedure [dbo].[Proc_GroupQuery] Script Date: 08/01/2014 19:24:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <丁国华>
-- Create date: <2014年7月31日 20:08:32>
-- Description: <组合查询--学生上机状态查看,操作员工记录>
-- =============================================
ALTER PROCEDURE [dbo].[Proc_GroupQuery]
-- Add the parameters for the stored procedure here
@cboFieldA varchar(10), --字段名A
@cboOperatorA varchar(10), --操作符A
@txtContentA varchar(10), --要查询的内容A
@cboRelationA varchar(10), --组合关系A
@cboFieldB varchar(10), --字段名B
@cboOperatorB varchar(10), --操作符B
@txtContentB varchar(10), --要查询的内容B
@cboRelationB varchar(10), --组合关系B
@cboFieldC varchar(11), --字段C
@cboOperatorC varchar(10), --操作符C
@txtContentC varchar(10), --要查询的内容C
@tableName varchar(50) --要查询的视图名或表面名
AS
declare @strText varchar(500)--临时存放sql语句
--CHAR(32)是空格,CHAR(39)单引号
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
set @strText ='select * from '+@tableName+' where status !='+CHAR(39)+'正常上机'+CHAR(39)+' and status !='+char(39)+'正在值班'+CHAR(39)+' and'+CHAR(32)
+@cboFieldA+@cboOperatorA+CHAR(39)+@txtContentA +CHAR(39)
if @cboRelationA!=''
begin
set @strText=@strText+@cboRelationA+CHAR(32)+
@cboFieldB+@cboOperatorB+CHAR(39
)+@txtContentB+CHAR(39)
end
if @cboRelationB!=''
begin
set @strText=@strText+@cboRelationB+CHAR(32)+
@cboFieldC+@cboOperatorC+CHAR(39)+@txtContentC+CHAR(39)
end
execute(@strText)
END
</span></span> E---实体层写法如下:
<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: GroupQueryEntity
'命名空间: Entity
'内 容:
'功 能: 组合查询
'文件关系:
'作 者:丁国华
'小 组:宝贝计划
'生成日期: 2014/7/31 21:33:57
'版本号:V2.0
'修改日志:
'版权说明:
'**********************************************
Public Class GroupQueryEntity
''' <summary>
''' 组合查询用到的一系列实体
''' </summary>
''' <remarks></remarks>
Private _cboFieldA As String
Public Property cboFieldA() As String
Get
Return _cboFieldA
End Get
Set(value As String)
_cboFieldA = value
End Set
End Property
Private _cboOperatorA As String
Public Property cboOperatorA() As String
Get
Return _cboOperatorA
End Get
Set(value As String)
_cboOperatorA = value
End Set
End Property
Private _txtContentA As String
Public Property txtContentA() As String
Get
Return _txtContentA
End Get
Set(value As String)
_txtContentA = value
End Set
End Property
Private _cboRelationA As String
Public Property cboRelationA() As String
Get
Return _cboRelationA
End Get
Set(value As String)
_cboRelationA = value
End Set
End Property
Private _cboFieldB As String
Public Property cboFieldB() As String
Get
Return _cboFieldB
End Get
Set(value As String)
_cboFieldB = value
End Set
End Property
Private _cboOperatorB As String
Public Property cboOperatorB() As String
Get
Return _cboOperatorB
End Get
Set(value As String)
_cboOperatorB = value
End Set
End Property
Private _txtcontentB As String
Public Property txtcontentB() As String
Get
Return _txtcontentB
End Get
Set(value As String)
_txtcontentB = value
End Set
End Property
Private _cboRelationB As String
Public Property cboRelationB() As String
Get
Return _cboRelationB
End Get
Set(value As String)
_cboRelationB = value
End Set
End Property
Private _cboFieldC As String
Public Property cboFieldC() As String
Get
Return _cboFieldC
End Get
Set(value As String)
_cboFieldC = value
End Set
End Property
Private _cboOperatorC As String
Public Property cboOperatorC() As String
Get
Return _cboOperatorC
End Get
Set(value As String)
_cboOperatorC = value
End Set
End Property
Private _txtContentC As String
Public Property txtContentC() As String
Get
Return _txtContentC
End Get
Set(value As String)
_txtContentC = value
End Set
End Property
Private _tableName As String
Public Property tableName() As String
Get
Return _tableName
End Get
Set(value As String)
_tableName = value
End Set
End Property
End Class
</span></span> D层如下:就学生上机状态查询来说:
<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: T_LineDAL
'命名空间: DAL
'内 容:
'功 能:
'文件关系:
'作 者:丁国华
'小 组:宝贝计划
'生成日期: 2014/7/25 10:39:13
'版本号:V2.0
'修改日志:
'版权说明:
'**********************************************
''' <summary>
''' 组合查询-学生上机状态查看
''' </summary>
''' <param name="enGroupQuery"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function queryStatus(enGroupQuery As Entity.GroupQueryEntity) As List(Of Entity.LineEntity) Implements ILine.queryStatus
Dim strText As String = "Proc_GroupQuery" '从存储过程里面查询相应信息
Dim cmdType As String = CommandType.StoredProcedure '命令类型
Dim parameter As SqlParameter() '传参
parameter = {New SqlParameter("@cboFieldA", enGroupQuery.cboFieldA),
New SqlParameter("@cboOperatorA", enGroupQuery.cboOperatorA),
New SqlParameter("@txtContentA", enGroupQuery.txtContentA),
New SqlParameter("@cboRelationA", enGroupQuery.cboRelationA),
New SqlParameter("@cboFieldB", enGroupQuery.cboFieldB),
New SqlParameter("@cboOperatorB", enGroupQuery.cboOperatorB),
New SqlParameter("@txtContentB", enGroupQuery.txtcontentB),
New SqlParameter("@cboRelationB", enGroupQuery.cboRelationB),
New SqlParameter("@cboFieldC", enGroupQuery.cboFieldC),
New SqlParameter("@cboOperatorC", enGroupQuery.cboOperatorC),
New SqlParameter("@txtContentC", enGroupQuery.txtContentC),
New SqlParameter("@tableName", enGroupQuery.tableName)}
Dim sqlHelper As New SqlHelper
Dim dt As New DataTable
Dim myList As List(Of Entity.LineEntity)
dt = sqlHelper.ExecuteReaderTable(strText, cmdType, parameter)
myList = EntityHelper.convertToList(Of Entity.LineEntity)(dt)
Return myList
End Function
End Class</span></span> 对实体进行封装,把先前需要传递的十一个参数转换成现在只需要传递一个实体即可,还有一个细节问题需要注意的是,在存储过程里面SQL语句where后面的条件该如何写nie?就学生查看上机记录和操作员工作记录来说,第一个组合查询涉及到的状态有正常上机,正常下机,强制下机;第二个组合查询涉及到的状态有正在值班和下班两种状态,我们的第一个组合查询的业务需求是查出来的信息是状态不等于正常上机的相关信息,第二个组合查询的业务需求是状态不等于正在值班的相关信息,那么在where后面的条件到底是用and连接还是用or连接,小伙伴们都知道and的意思是和,连词,连接两个并列结构,or是或者的意思,整到这里,我就开始整蒙圈了,到底是用or还是用and呢?开始我的第一反应用的是or,要么执行这个,要么执行那个,别着急,让我们用实话说话,焦点访谈,呵呵,开个玩笑,在SQL中新建查询,看看用and连接,会发生什么好玩儿的事儿呢?接着,用or连接:
进过对比,我们发现,第一个用and连接,查询出来的信息的状态包括正常上机的和正常下机的,但是根据机房收费系统的业务需求,需要我们查询出来的信息是正常下机的,显然第二个才是我们所需要的信息,聪明的读者,明白了么?
对比我们之前学习过的vb中的函数过程和我们的存储过程,有什么不一样的地方呢?存储过程不一定非要有返回值数据库中的函数一定有返回值;存储过程在前台语言可以直接调用 而函数一般要有sql语句做为载体;用户自定义函数在处理同一数据行中的各个字段时,特别方便有用。虽然这里使用存储过程也能达到查询目的,但是显然没有使用函数方便。而且,即使使用存储过程也无法处理SELECT查询中的同一数据行中的各个字段的运算。因为存储过程不返回值,使用时只能单独调用;而函数却能出现在能放置表达式的任何位置。第二版机房收费系统,未完,待续......
留住最美的瞬间
有时候,瞬间往往是这世上最美的也是最珍贵的。就是那短短的一瞬间,
往往值得我们留恋一辈子。我们不能用相机记录下每一瞬间,我们只能用真心
去留住最美的瞬间。
朋友们,赶快留住那最美的瞬间,这一瞬间让每一个人感动。这一最美的瞬
间是在2008年的汶川大地震中发生的,一位刚被武警官兵救出的小男孩,在他被
抬上担架的那一瞬间,他向他的救命恩人敬了一个军礼。那一瞬间,所有在场的
救援人员都感动了——多么可爱的小男孩啊!是他给全世界留住了最美的瞬间。
朋友们,赶快留住那最美的瞬间,这一瞬间是我们中华儿女的骄傲。在北
京奥运会开幕式上,李宁在高空中点燃奥运圣火的那一瞬间最美、最珍贵,这
一瞬间虽短暂,但是它凝聚着中国人民的智慧和汗水。13亿中国人民盼望这一
瞬间的到来已经盼了近百年了。这一瞬间,中华儿女最骄傲,中国最自豪,中
国让全世界都刮目相看了,中华儿女会深深地留住那最美的瞬间。
朋友们,赶快留住那些最美的瞬间。这一瞬间就在你我的身边,它并不一
定是国家盛事,它就在你的身边从未走远。当你摔跤时,父母焦急地跑去扶你
的那一瞬间;当你生病时,父母背你飞奔医院的瞬间;当你成功时,和父母拥
抱的瞬间……这些小小的瞬间,你都留住了吗?这些都是最美的瞬间。
瞬间,总是那么短暂,它稍纵即逝,只有我们用心去捕捉,我们才能留住
它。朋友们,无论是国家盛事,还是生活中的细节,只要是值得我们留住的瞬
间,我们都要用心去留住它。
美的事物总是让人难以忘怀。美,不一定要长久,也许有时那只是短暂的一瞬,却足以在你的脑际留下永久的印痕。
枫叶的摇落,是一种火焰的坠落,有悲壮之感;梧桐的飘零,飒飒于风中雨中,令人萌生感动;夕阳的坠落,是一种轻松的坠落,它抚起了明日的朝阳。虽说,这些瞬间的景色让人感到一丝凄凉,但它们散发的短暂光芒何尝不是一种绝美。
美,我们追求它是自然的,而并非刻意的装饰;大自然的美景,谁人不爱,又有谁可以掩盖它的风采,朝霞晚霞、日出日落、潮起潮落之所以那么美,只因它在瞬间放射出无尽的光辉,当你回过神时,它早已逝去,你可以看到下次的来临,却无法将这次的逝去挽留,更无法使美在片刻凝固。
事物尚且如此,生命又何尝不是这样?我们总是将新生命的诞生,看作是美,将生命的逝去,看作是痛。面对死亡,人总是心生恐惧,但人固有一死,或重于泰山、或轻于鸿毛,只要能在有限的生命中为人民做出无限的贡献,即使是英年早逝,又有何妨,因为你的美已经深深地烙在了人们的心坎上。烈士们那瞬间的逝去,不就铸造了永恒的灿烂吗?
那么,只要我们能把握生命中的美丽,铭刻那份永恒,并为报答那永恒的光辉尽力而为,也无须因为时间仓促而感叹人生。
让我们共同携手撒下美的种子,等待它静静地绽放,等待幸福悄悄地来临。
二:出身那年,爷爷家门前栽了五棵桃树,不知道是什么意思。
每年,花开花落,美极了。纵然年幼的我不懂得这份美丽,只知道很好看。我和小伙伴们在满是花瓣的地上玩耍,在并不健壮的树枝上荡秋千,有时还残忍地折下几枝,将花瓣一点点摘下,洒落在地上。又一阵风吹来,又一阵花落下,飘落在我上,飘落在地上,就像一片小小的粉色的海。 稍大一点,树也和我一样长大,开始结桃子。我并不喜欢这样,因为它们招来了虫子,使整片桃林都变得憔悴起来。我开始讨厌它,很少再去树下玩耍。
后来,我上学了,再没有看到那片粉色的海。假期偶尔去爷爷家,我能看到的也只是一片片不完整的叶子。我不再愿意接近那片小小的桃林。在我的印象中,它们一年比一年衰老,一年比一年憔悴,再没有了青春,再没有了美丽。
......余下全文>>
那些痛的记忆,,,梦中你的美丽,,(中间有两句),,带出下一个话题。同样求解,,