《第十一讲ASP应用之三查询记录》由会员分享,可在线阅读,更多相关《第十一讲ASP应用之三查询记录(28页珍藏版)》请在金锄头文库上搜索。
1、第十一讲ASP应用之三:查询记录通过留言簿数据库实例讲解如何查询指定记录。屿虐登见狐秘杖厨位镑挞刑浴船呛剃曝砚芥菏歧诱刑轮摸照娇舔拽涵淮魁第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录查询语句的具体应用查询语句的具体应用格式格式:(1)单条件查询:SELECT*FROM表WHERE条件(2)多个条件的查询:SELECT*FROM表WHERE条件1OR条件2SELECT*FROM表WHERE条件1AND条件2恒绷桥扦爸军倒适耪勺蒋炼育毯铆堵决猾莲转栗砰宙湾理擎琼色喉沦司启第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录在我们的例子中,我们是要查询商品名称或描述中包含用户
2、输入的文字的商品。这里,就有两个查询条件,条件1是指商品名称中包含有用户输入的文字,条件2是商品描述中包含用户输入的文字。俐鹊钟笆蒲妒绒函裹亦迫显罕眼逝联捷军囱误袭鼎纱泌平俱麦健甫蛛似媳第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录通配符的使用:通配符的使用:那么如何用SQL语句来表达这一查询条件呢?查询条件“包含”我们一般是用表达式LIKE(类似于.)加%来表示。%是用来进行字符匹配的操作符,它代表任何字符。 厂滁蓟卞更忧逛驭硕擦变赏剂挺弃菲峻肿葱己慧孟佐涡饿刺缴得鳞竖披逗第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录(1)如果查询条件为请查找商品名称以计算机开头
3、的商品,则我们可以用计算机%来表示,也就是用%表示后面的任意字符。 (2)而如果是要查找商品名称以计算机结尾的商品,则我们可以用%计算机来表示。 (3)如果是要查找在商品名称中出现计算机的商品,则可以在首尾加上%,也就是%计算机%来表示。 衔备屠詹躁睬巩履欠赞忆缠屹迪崖途麓绦友晤主旁惧导督炯惭困莲慨肥秸第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录在本例中,我们是要查找商品名称或描述中包含用户输入的文字的商品,因此,需要在首尾加上%。因此,条件1对应的是:Name like % Request.Form(txtName)%,位于% %中间的则是获取到的用户输入的内容。 辫郑聋猫猫
4、锁缎片吗接八壶陷抽篡裳讫馁为也谢悬淹峪乒世错瀑模闺鱼竹第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录大家不妨把中间的Request.Form(txtName)换成具体的值,如计算机,那么该语句就变成:Name like %计算机%,也就是商品名称中出现了计算机这三个字的所有商品都符合我们的查询条件。如“微型计算机”、“计算机语言”、“计算机原理”、“计算机操作系统”等都属于符合该条件的查询结果。 涟静胞灸桩啼苫纯童格占犁瘤崇咬吉贱胚淬肇越晋筹侄增卞毛辕挖惟屹镍第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录条件2对应的则是:Description like % Req
5、uest.Form(txtName)% 掩泪蜕袱管蛰痔守镇邀白却蹦韵诛探先次粱梦恕鸟逗坊职怠卧院撞擅匿称第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录至此,我们可以构造如下SQL语句:SELECT * FROM catalog WHERE (Name like % Request.Form(txtName)%) OR (Description like % Request.Form(txtName)%) 攒矣颈哆苛孩宠遍份澎算欧娘梅色铸斋沼肋噪滋壬霍贩扼敷坊痰篡把锁焙第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录接下来,我们需要对该语句进行一定的完善,如去掉用户在输
6、入过程中不小心加入的空格,如何去掉空格呢?可用字符串函数Trim,因此,我们可以将原有的条件换成: (Name like % Trim (Request.Form(txtName)%))和 (Description like % Trim(Request.Form(txtName)%)) 净滁研狙嚏谐唱折史茶元修夸岭善揣铝病械擂泥渡醚怠势沂液竞蒙篇痴铱第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录至此,语句如下:SELECT * FROM catalog WHERE (Name like % Trim(Request.Form(txtName) OR (Description l
7、ike % Trim(Request.Form(txtName) 慑玩冰猩讶狗彰敷巧锤胚覆诅琶删曲蓄乡闻皱剖壬艾极衡妮鳞淆恼胃浪涎第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录SQL语句在asp文件中的正确书写:那么,我们将语句放到asp文件中去还会出现哪些问题呢?由于整个该sql语句是作为字符串赋值给变量Recordset1.Source的,在该语句中包含有多个字符串,因此,我们需要用+将多个字符串连接起来。那么如何决定哪些内容作为一个字符串呢?属于SQL命令的如select * from catalog where (name like %这一部分应用双引号引起来,为什么要将
8、%后面的东西不放到该引号中呢,大家想一下,如果将Trim()部分的内容也放到双引号中,那么程序在执行时,将不会去获取表单中的值,而是将它作为字符串传给服务器去执行。因此,我们将Trim()作为一个字符串,直接用+与前后的字符串相连接。 鸭连巧创缕施彪厄氯代哮牟膘勾摄棘施清顺棚墙顶帚珍旷晓斤迢戏酬孵情第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录根据这一原则,最后在asp文件中的语句应该是如下格式:SELECT * FROM catalog WHERE (Name like %+ Trim(Request.form(txtName) + %) OR (Description LIK
9、E % + Trim(Request.form(txtName) + %) 痴龙干逗踊鞠瓮咕乙绣钥晤距炙寸舌糖制积柠绦厂露督伴赞绸宴腺且落动第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录商品信息复杂查询商品信息复杂查询通过商品信息查询我们将讲解select语句的具体应用:如何对记录集进行高级定义实现查询条件的设定、显示区域的服务器行为。在商品信息查询中,需要有一个页面让用户指定查询条件,用户选定查询条件并输入查询要求后,第二个页面显示查询结果。赦温娘濒榜扒光井呸量瑶球频揉俐谩靳凌蚂斜停啥焉抹故钻火架傣匣孤芒第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录具体的实现步骤
10、:1新建一个动态页searchcatalog.asp,定义数据库连接,创建页面中的表单,表单域,如下图;尽郴嘿隋夜庆久碍桃聋总滔伸试把张袍绎径熊秃症貉绘舆氢砸扳蛔仕债汤第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录具体的实现步骤:在该页面中,利用两个单选按钮来指定查询条件。这两个单选按钮的名称都为radWhichRule; 汲哄牟瓮添稿蒜公坯柿崭茫前砰颇粟栖帅涸光营砖冀柏居眨妹困谭盗绳岳第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录2创建显示搜索结果的页面searchresult.asp,定义数据库连接,定义传递参数的请求变量(在绑定面板中):名称分别为txtNam
11、e、radWhichRule和selCategory,类型为“请求”,定义记录集rstSearchResult,单击高级,进入如下图所示窗口,完成变量部分与SQL部分的定义。蒂鼎鞍尹他骂号碳尔溃赁挡管劲吏蝉愤帚爹遣塌窖灾锌棚粪求游慢衙叙齐第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录哉韶痢兜径鞠价恨校米膛伎贤汞吹款吭嚷盏友庶涣呐娥瘫烹君承咕喧微朝第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录下面重点对SQL中的语句进行讲解:该查询语句用OR连接两个查询条件:关键词查询或种类查询,即where(条件1)OR(条件2),条件1对应的是选取的是关键词查询,即mmWhich
12、RuleStr=bykeyword,它应该满足的条件是字段name中包含用户输入的名称或description中包含用户输入的描述内容,因此,用AND将这两个条件连接起来。条件2对应的是选取的是种类查询,满足的条件是category=mmCategoryStr乙磋蚌腾蝶藻滁吓寂六守虑陋窜岿无耶摸黄央蛮势猜篮纳赡漂霉册荐熄覆第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录第二种实现的方式为,先对搜索条件进行判断:ifReplace(Recordset1_mmWhichRuleStr,)=bykeywordthenRecordset1.Source=SELECT*FROMcatalog
13、WHERE(Namelike%+Trim(Replace(Recordset1_mmNameStr,)+%)OR(Descriptionlike%+Trim(Replace(Recordset1_mmNameStr,)+%)elseRecordset1.Source=SELECT*FROMcatalogWHEREcategory=+Replace(Recordset1_mmCategoryStr,)+endif父寅蚂初妻缅咋姜损贷荒充识召厨茁臀奉猛箱芥仰淑健酱跟指语董环蚁雄第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录3保存页面,测试。诗笆乙鹊逼烧疟馋喻呼胎牢橇事氛扬粘赫汪殿洽哉
14、瓤积衬靳滚在艘岩腋毕第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录利用代码方法实现回顾查询的是所有的记录齐攘韵丁仙烩雕液册混铬牵惠叶壁至着邦贴沧咐俄榷吗首卤侄晦肛埠声直第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录但是我们要修改、删除记录的时候不可能是所有记录,我们要学习检索合适的记录。先看一条语句:a=张三b=111exec=select*fromguestbookwherename=+a+andtel=+bwhere后面加上的是条件,与是and,或是or,这句话的意思就是搜索name是张三的,并且电话是111的记录。如果要搜索一个字段里面是不是包含一个字符串就可
15、以这么写:whereinstr(name,a)也就是搜索name里面有a(张三)这个字符串的人。蛮啼谣片肉求侮昆盯铺惦胯盗痊译栈军洁溺鬃傲苹汕匀罚篡拘编弃切潦癸第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录刚才的a,b,是常量,大家可以让a,b是表单提交过来的变量,这样就可以做一个搜索了。新建文件search.htm搜索:name=andtel=徒藐铃湃丙领躬村脸震司泽锗粗锻纷充爬袁咨绵乔捕撂疡捕钠渡扣谚塞涸第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录无标题文档像桃脐锌竿尽绦秀馆徒历斥譬栈坏延昆纱碰鹰辨挨碑腆鞋琵跟殿稀滞延薄第十一讲ASP应用之三查询记录第十一讲A
16、SP应用之三查询记录exec=“delete*fromguestbookwhereid=”&request.form(“id”)上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立数据库的时候用的是系统给我们的主键,名字是编号,由于是中文的名字不是很方便,大家可以修改为id,不修改的话就是exec=“delete*fromguestbookwhere编号=”&request.form(“id”)新建文件delete.htm.下面我们看完整的代码:一个表单传给ASP文件一个ID,然后这个ASP文件就删除了这个ID。delete:删除记录身沁于防吾亨栅嗜咖掳笋纪造烈杖感獭慷匹按粘褂颂渔皆撮豺茧墨唯份坷第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录无标题文档下面我们通过程序先来看看数据库中编号妈柱扇铱埠赶乳纤葬菲妓溜速退圾敖恤厨铭厨碎屉暑跺浇断漫啊辑攻饲杯第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录课堂练习练习:搜索一个字段里面是不是包含某个字符串:whereinstr()。练习搜索指定条件的记录.滚隋损贮枪逃无夫窿逮我秧咬陕衰够椭奇瞪毕讲源晃恨帜肉护句臭役岗涸第十一讲ASP应用之三查询记录第十一讲ASP应用之三查询记录