asp如何显示已在数据库编码了的相对应的记录?
时间:2010-06-09 18:44:00
如何显示已在数据库编码了的相对应的记录?
我做了一个歌曲库,在查询中使用了几个下拉菜单供选择条件用,如歌手的性别、区域、爱好等,由于选项太多,维护麻烦,朋友建议我用编码方式,即在往主数据库中输入选项时只输入编码,显示时把对应的汉字显示如来。该如何做呢?
这个程序,输入记录部分好做,如查询性别,只需按下处理即可:
< %
Set Conn=Server.CreatObject("ADODB.Connection")
Conn.Open "CHUNFENG"
Set RS =Conn.Execute("Select YB, DB From zd Where YB Like "se%"")
Response.Write "< SELECT SIZE=1 NAME="SEX" >"
Do While Not RS.EOF
response.write "< option value='"RS(0)"' >" &RS(1)
Rs.MoveNext
Loop
Response.Write "< /SELECT >"
RS.Colse
Conn.Colse
% >
其中,zd.dbf包含DB、YB两个字段,DB表示待编码项,象男、女,YB表示编码,象性别编码的前两位为se,se1表示男,se2表示女。
查询部分复杂一些,需要技巧来处理:当在下拉菜单选中一项时,例如性别选中男,下拉菜单中输入的是se1——当然,反映在数据库中是“SEX=1”,因为我们已在数据库中输入编码——查询的就会是SEX=se1的项,在处理时,我们只要要把se1中的1提取出来就行。注意,这里我们用到一个函数mid,查询条件为:
SEX=mid("se1",3,1)
即从数据库中查找SEX=1的项,并把所有满足条件的项不重复地列举出来。 在显示查询结果(列表方式)时还需要显示编码对应的汉字,这好办,到字典中去找编码为"se"&"1"的项所对应的编码值即可,具体代码如下:
< table border="1" width="95%"
bordercolor="#C0C0C0" cellspacing="0" cellpadding="0"
bordercolorlight="#C0C0C0"
bordercolordark="#C0C0C0" height="60" >
< tr >
< td width="10%" align="center" height="1" >< p align="center" >姓名< /td >
< td width="10%" align="center" height="1" >编号< /td >
< td width="10%" height="1" > < p align="center" >性别< /td >
......
< /tr >
< %i=1% >
< %While Not RS.EOF % >
< tr >
< td width="9%" align="center" height="1" >< %=RS ("name")% >< /td >
< td width="12%" align="center" height="1" >< %=RS ("dang")% >< /td >
< td width="6%" height="1" >< %=Func ("se" & RS("sex"),CHUNFENG)% >< /td >
......
< /tr >
< %RS.MoveNext% >
< %i=i+1% >
< %WEnd% >
< /table >
其中:
Func ("se" & RS("sex"),CHUNFENG)
就是实现从数据源中取得编码所对应的汉字功能的函数,。