ASP教程之ASP的多前提静态查询
ASP脚本是采用明文(plaintext)方式来编写的。静态|前提当用ASP与SQLServer数据库打交道时,查询语句是必不成少的。SQLServer数据库自己供应了丰厚的查询语句,可是怎样在ASP中完成对SQLServer数据库的多前提静态查询呢?笔者在用ASP开辟一个基于SQLServer的网站时,较好地办理了这一成绩,本文先容个中的完成办法。数据库的界说
在SQLServer中界说一个数据库,称号为“comm_server”。在该数据库中界说一个表,表名为“operator”,包括以下表所示字段(仅以程序顶用到的5个字段为例):
字段称号备注
Name姓名Varchar(20),界说为主键
Educationallever学历Varchar(10)
Grade职称Varchar(10)
State如今情况Varchar(10)
Time纪录工夫datetime
输出网页的计划
在index_people.htm网页中界说一个form,个中用到的尺度用户界面元素以下:
姓名:学历:选择职称:选择如今情况:选择
TML程序代码以下:
〈!--form的办法设置为post,表单提交后由people_seek.asp程序举行处置--〉
〈formmethod=“post”action=“people_seek.asp”〉
〈pre〉
〈fontsize=“2”〉姓名:〈/font〉
〈inputtype=“text”name=“txt_name”size=“10”〉
〈fontsize=“2”〉学历:
〈selectname=“sel_xueli”〉
〈optionvalue=“选择”〉选择〈/option〉
〈optionvalue=“中专”〉中专〈/option〉
〈optionvalue=“年夜专”〉年夜专〈/option〉
〈optionvalue=“本科”〉本科〈/option〉
〈optionvalue=“硕士”〉硕士〈/option〉
〈optionvalue=“博士”〉博士〈/option〉
〈optionvalue=“博士后”〉博士后〈/option〉
〈/select〉
职称:
〈selectname=“sel_zhicheng”〉
〈optionvalue=“选择”〉选择〈/option〉
〈optionvalue=“助工”〉助工〈/option〉
〈optionvalue=“工程师”〉工程师〈/option〉
〈optionvalue=“初级工程师”〉初级工程师〈/option〉
〈/select〉
如今情况:
〈selectname=“sel_zhuangkuang”〉
〈optionvalue=“选择”〉选择〈/option〉
〈optionvalue=“在位”〉在位〈/option〉
〈optionvalue=“休假”〉休假〈/option〉
〈optionvalue=“出差”〉出差〈/option〉
〈/select〉
〈inputtype=“submit”name=“btn_seek”value=“搜刮”〉
〈inputtype=“reset”name=“btn_cancel”value=“作废”〉
〈inputtype=“submit”name=“btn_browse”value=“扫瞄”〉
〈/font〉〈/pre〉
〈/form〉
多前提静态查询的完成
people_seek.asp程序代码以下:
〈!--界说以下两个函数,经由过程ADO毗连SQLServer数据库--〉
〈%
FunctionGetSQLServerConnection(Computer,UserID,Password,Db)
DimParams,conn
SetGetSQLServerConnection=Nothing
Params=“Provider=SQLOLEDB.1”
Params=Params&“;DataSource=”&Computer
Params=Params&“;UserID=”&UserID
Params=Params&“;Password=”&Password
Params=Params&“;InitialCatalog=”&Db
Setconn=Server.CreateObject
(“ADODB.Connection”)
conn.OpenParams
SetGetSQLServerConnection=conn
EndFunction
FunctionGetSQLServerStaticRecordset(conn,source)
Dimrs
Setrs=Server.CreateObject(“ADODB.Recordset”)
rs.Opensource,conn,3,2
SetGetSQLServerStaticRecordset=rs
EndFunction
%〉
〈HTML〉〈BODYbgcolor=“#FFFFFF”〉
以下是对form表单的处置:
〈!--假如在form中点击“搜刮”按钮--〉
〈%
ifRequest(“btn_seek”)〈〉Emptythen
〈!--取得查询者输出信息--〉
seek_name=Trim(Request(“txt_name”))
seek_xueli=Trim(Request(“sel_xueli”))
seek_zhicheng=Trim(Request(“sel_zhicheng”))
seek_zhuangkuang=Trim(Request
(“sel_zhuangkuang”))
〈!--假如查询者甚么都没有输出--〉
if((seek_name=“”)and(seek_xueli=“选择”)
and(seek_zhicheng=“选择”)and
(seek_zhuangkuang=“选择”))then%〉
〈center〉〈h2〉〈fontcolor=“#FF0033”〉
〈%Response.Write“您没有输出查询前提!”%〉〈BR〉〈BR〉
〈%Response.Write“请输出前提后查询!!!”%〉〈BR〉〈BR〉
〈/font〉〈/h2〉
〈inputtype=“button”name=“btn_goback”value=“前往”onclick=“javascript:history.go(-1)”〉
〈/center〉
〈%Response.End%〉
〈%endif
〈!--界说要查询的SQL语句--〉
sql_text=“select*fromoperatorwhere”
〈!--检察是不是输出了人名--〉
ifseek_name=“”then
〈!--假如没有输出人名--〉
sql_text=sql_text
else〈!--假如输出了人名--〉
sql_name=“name=‘“&seek_name&”’”
sql_text=sql_text+sql_name
endif
〈!--检察是不是选择了学历--〉
ifseek_xueli=“选择”then
〈!--假如没有选择学历--〉
sql_text=sql_text
else〈!--假如选择了学历--〉
if(seek_name〈〉“”)then
〈!--在后面输出了要查询的人名--〉
sql_xueli=“and“+”educationallever=‘“&seek_xueli&”’”
else
sql_xueli=“educationallever=‘“&
seek_xueli&”’”
endif
sql_text=sql_text+sql_xueli
endif
〈!--检察是不是选择了职称--〉
ifseek_zhicheng=“选择"then
〈!--假如没有选择职称--〉
sql_text=sql_text
else〈!--假如选择了职称--〉
if((seek_name〈〉“”)or(seek_xueli〈〉“选择”))then
〈!--在后面输出了人名或选择了学历--〉
sql_zhicheng=“and“+”grade=‘“&seek_zhicheng&”’”
else〈!--仅选择了职称--〉
sql_zhicheng=“grade=‘“&
seek_zhicheng&”’”
endif
sql_text=sql_text+sql_zhicheng
endif
〈!--检察是不是选择了如今情况--〉
ifseek_zhuangkuang=“选择”then
〈!--假如没有选择如今情况--〉
sql_text=sql_text
else〈!--选择了如今情况--〉
if((seek_name〈〉“”)or(seek_xueli〈〉“选择”)or(seek_zhicheng〈〉“选择”))then
〈!--在后面输出了人名或选择了学历或选择了职称--〉
sql_zhuangkuang=“and“+”state=‘“&seek_zhuangkuang&”’”
else〈!--仅选择了如今情况--〉
sql_zhuangkuang=“state=‘“&
seek_zhuangkuang&”’”
endif
sql_text=sql_text+sql_zhuangkuang
endif
〈!--按纪录工夫倒序显现--〉
sql_text=sql_text+“orderbytimedesc”
else〈!--假如在form中点击“扫瞄”按钮--〉
sql_text=“select*fromoperatororderbytimedesc”
endif
Myself=Request.ServerVariables(“PATH_INFO”)
〈!--毗连SQLServe数据库,呆板名为“comm_server”,数据库称号为“comm_server”,以“sa”的身份会见,暗码为空--〉
Setrs=GetSQLServerStaticRecordset(GetSQLServerConnection(“comm_server”,“</p>asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
页:
[1]