android里面全屏显示一张图片

2022-03-14 科技 60阅读
一些朋友问到如何显示数据库中的图片?这就是本节所要讨论的主要问题。
我想可以通过2种方法解决,就ACCESS97数据库而言,一种方法就是在数据库内创建一个字段保存图片,通过ASP程序来直接显示它;另一个方法就是在数据库内创建一个普通的文本类型的字段,该字段只保存相应的图片的文件名,将图片放在指定的目录内,然后通过ASP程序显示它。

我们先看后者,我认为这个方法简单,数据库操作起来负担轻。

(1)首先,构造ACCESS97数据库people.mdb,结构如下:

字段名类型长度描述
id自动编号递增用户id
username文本20用户名
picture文本60图片文件名
sex文本10性别(男、女)
age数字整型,小数位0年龄
email文本60用户邮箱
info文本110用户描述

提示:构造合理的数据库结构非常重要,这个例子非常简单。需要指出的是如果一个字段需要20个字符数就够了,就不要用ACCESS97默认的50,info字段用“备注型”也可以,但是没有必要,110个足够描述了。这样节省系统资源。尤其是数据量非常庞大时这个选择的优势就显示出来了。

(2)我们需要完成这样几个页面,login.htm用于管理员将数据登陆到数据库内,add.asp用于处理数据的登陆,view.asp显示所有在数据库内的成员列表,vieweach.asp用于点击单个用户后显示该用户资料。

额外的说明:本例是将所有的图片放在images目录内。如果你打算通过这个程序作个友情连接或交友程序,可以稍加修改,将图片做成指向某个URL的连接即可。最好的情况是你有一个upload的组件,允许用户上传他们的图片。

(3)login.htm文件:

普通的HTML页面,你需要注意的是:,即将提交的表单交给add.asp去处理。此外,你还需要为为表单中的每一个项目命名。本例分别是:username,picture,sex,age,email和info。

本节要点:将记录添加到数据库中Add.asp

<%@language>
’告诉服务器处理的脚本类型,可以不要,一般系统默认是vbscript,因为默认脚本可以通过修改注册表而变化,所以最好加上。
<%>’取得表单输入的数据
username=Request.form("username")
picture=Request.form("picture")
sex=Request.form("sex")
age=trim(Request.form("age"))
’去掉输入的age左侧的空格
email=trim(Request.form("email"))
’去掉输入的email左侧的空格
info=trim(Request.form("info"))
’去掉输入的info左侧的空格

’下面进行表单项目检测,首先是非空检测
ifusername=""orpicture=""orage=""oremail=""orinfo=""then
Response.Write"
请将资料填写完整。
"
Response.end
endif

’检测age字段是否是数字
ifnotisnumeric(age)then
Response.Write"
年龄应该是数字。
"
Response.end
endif

’检测email是否输入正确,标准检测方法,今后用它你可以检测email的正确性;
ifinStr(email,"@")=0orinStr(email,".")=0then
Response.Write"
Email填写错误。
"
Response.end
endif

’与数据库连接
setdbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath=Server.MapPath("people.mdb")
dbconnection.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath

’检测同一个picture是否已经在数据库中存在,即记录是否重复;注意我们这里只需要picture字段,所以就是selectpicture,不必select*了,不必要浪费资源的时候就要节约。还有就是带条件的select语句的写法,有一个单引号,即selectpicturefrompeoplewherepicture=’1.jpg’。其中pople是数据表名。

strsql_dup="selectpicturefrompeoplewherepicture=’"&picture&"’"

’创建recordset对象
Setrs_dup=Server.CreateObject("ADODB.Recordset")
rs_dup.Openstrsql_dup,dbconnection,3

’如果有数据重复,显示出错信息;
ifnotrs_dup.eofthen
Response.Write"
该记录在数据库中已有。
"
rs_dup.close
setrs_dup=nothing
response.end

’否则进行添加操作;
else
Setrs_add=Server.CreateObject("ADODB.Recordset")
rs_add.Open"people",dbconnection,adOpenDynamic,3,AdCmdTable

’加入数据记录
rs_add.AddNew
rs_add("username")=username
rs_add("picture")=picture
rs_add("sex")=sex
rs_add("age")=age
rs_add("email")=email
rs_add("info")=info
rs_add.Update

endif

’记录加入数据库后,导向view.asp查看数据;
’通过view.asp查看所有的记录连接,查看具体的某一条记录通过viewsach.asp控制;
response.redirect"view.asp"

’关闭数据库连接并清除内存;

rs_add.close
setrs_add=nothing
dbconnection.close
setdbconnection=nothing
%>

本节的主要问题是:添加记录后显示数据库内的人员列表,显示的用户名应该是超级连接形式,同时将用户id传递给下一个页面,以便于显示单个用户资料。传递的方法是通过环境变量QueryString进行的。

view.asp

<%@language>

<%>setconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath=Server.MapPath("people.mdb")
connection.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath

’创建sql语句,这里只需要用户id和username,需要id是因为要传递到下一个页面中去。

strsql="selectid,usernamefrompeople"
’创建recordset对象
Setrs=Server.CreateObject("ADODB.Recordset")
rs.Openstrsql,connection,3
%>


显示所有人员名单






如下是已经登陆的人员名单,点击人名可看详细资料:

<%ifrs.eoforrs.bofthen%>
目前暂时没有记录。
<%>else
RS.movefirst’移动到下一个记录
dowhilenotrs.EOF’使用dowhile...loop循环显示所有记录
%>

’,’newwindow’,
’menubar=no,location=no,toolbars=no,top=0,height=250,width=300’)"><%>

<%>rs.movenext
loop
endif
%>
<%>rs.close
setrs=nothing
connection.close
setconnection=nothing
%>






注意:上面天蓝色部分是重点,注意表示成超级连接的写法,还有我使用了弹出式窗口来完成,对应的连接大概是这样:用户一,紧接着问号后面的就是环境变量名id,等号后面的就是变量的值,如果需要传递多个变量到后续页面中,变量间用“&”连接即可。例如:等。在下一个页面中就可以用request.querystring("变量名")取得传递过来的变量值。

在上面的代码中,<%>和<%>可以得到对应的值用户id和用户名。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com