新手关于数据库的初级问题

bangzzdzzgd 2004-01-30 03:51:51
我是新手,自己看书学的ASP,现在发现有很多地方不懂,特别是:数据库方面!

书上第七章写的是“ADO访问数据库”
第八章写的是“RECORDSET访问数据库”
这样看来: ADO与RECORDSET是两面码事吧!也就是说应该是两种方法吧!

可为什么在第七章中还写道:
ADO所有重要的接口:CONNECTION ERROR COMMAND PARAMETER RECORDSET FIELD

这其中就包含了:RECORDSET了呀!
还有那个SQL语言,是不是直接可以拿来用?现在脑子里是一团·#¥%!

其实我就是想做一个查询的,可为什么总完不成呢?

针对我上面的问题,麻烦各位给解释一下是怎么回事!!!!!





我想做一个数据库查询的页面!

数据库为ACCESS类型,名称为:dfcxaccess 其中含一表名称为:biao1
表中含三个字段,分别为:name\ psd \df
现表中共有三条记录!

用户页面:输入用户名(对应于数据库中字段name来存储)
输入密码(对应于数据库中字段psd来存储)
提交

查询页面:打开数据库,首先判断是否存在该用户,然后判断该用户的密码是否正确,如果正确的话,则显示其对应的字段df的内容!!!


下面是我改的代码,请各位高手帮忙给看看吧!
用户页面(4.asp)
<html>
<head>
<title>9-2.asp</title>
<body bgcolor="#FFFFFF">

<% '请输入您的用户名及密码 %>
<form name="myauthor" action="cx4.asp" method="GET">
帐号: <input type="TEXT" name="userid" size="20"><br>
密码: <input type="TEXT" name="pwd" size="20"><br>
<input type="SUBMIT" value="查询">
</form>

</body>
</html>





查询页面(cx4.asp)
<html>
<head>
<TITLE>cx2.asp</TITLE>
<!--#INCLUDE file="ADOVBS.INC" -->
</html>
<body bgcolor="#FFFFFF">
<%
useid=request.querystring("userid")
pwd=request.querystring("pwd")
conn="dsn=dfcxaccess"
set rs=server.createobject("adodb.recordset")
rs.open conn

for each item in rs.RecordCount
if userid=item.name then
if pwd=item.psd then
Response.Write rs.Fields(0).Value //显示你查到的记录的值
i=1
else
response.write"密码错误"
end if
end if
next
if i<>1 then
response.write"无此用户名"
end if

rs.close
set rs=nothing



%>
</BODY>
</HTML>




...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ok1000 2004-01-30
  • 打赏
  • 举报
回复
根据VB的经验,应该是这里不对:rs("name")

这里可能只是调用数据库表中第一个记录中该字段的值,是死的而不是随着循环而改变的!


不知说的对否!·

还请各位高手指点!!!
bangzzdzzgd 2004-01-30
  • 打赏
  • 举报
回复
再看这一次改的!

(发现原来错在:变量上, 不小心输错了!)
for each item in rs.fields
if userid=rs("name")then
if pwd=rs("psd")then
df=rs("df")
Response.Write df
i=1
else
response.write"密码错误"
end if
end if
next



上面这一段没有进行循环呀!
我现在数据库中有如下记录!
NAME PSD DF
1 1 一
2 2 二
3 3 三

输入1的话,则会正常输出:一
但输入2或者3则就会输出:无此用户名


到底是怎么回事呢?

就快要完成了呀!麻烦各位再帮忙给看看!
bangzzdzzgd 2004-01-30
  • 打赏
  • 举报
回复
lsaturn(土星-站了一晚) ( )

你好,能不能让你用DW生成的代码中对应的元素给我转成我想要的!!!

我看不懂你写的呀!

你再看看我又改过的如何? 这一次没有再报错了!
bangzzdzzgd 2004-01-30
  • 打赏
  • 举报
回复
非常感谢各位的帮助呀!

我刚才自己又改了一下!

发现它跟本就没有执行那个FOR EACH的循环就只输出了一个: “1无此用户名 ”前面那个1 不知哪儿来的!

<html>
<head>
<TITLE>cx2.asp</TITLE>
<!--#INCLUDE file="ADOVBS.INC" -->
</html>
<body bgcolor="#FFFFFF">
<%
useid=request.querystring("userid")
pwd=request.querystring("pwd")
response.write useid
response.write psd
conn="dsn=dfcxaccess"
set rs=server.createobject("adodb.recordset")
sql="select * from biao1"
rs.open sql,conn

for each item in rs.fields
if userid=rs("name")then
if pwd=rs("psd")then
df=rs("df")
Response.Write
i=1
else
response.write"密码错误"
end if
end if
next
if i<>1 then
response.write"无此用户名"
end if
rs.close
set rs=nothing



%>
</BODY>
</HTML>

lsaturn 2004-01-30
  • 打赏
  • 举报
回复
他是用的"get"啊
stefli 2004-01-30
  • 打赏
  • 举报
回复
pwd=request.querystring("pwd")
如果是从表单传递的数据就用
pwd=request.form("aa")
如果是通过?传递的数据就用
pwd=request.querystring("aa")
lsaturn 2004-01-30
  • 打赏
  • 举报
回复
ado是这项技术的总称,下面有六个com对象
CONNECTION ERROR COMMAND PARAMETER RECORDSET FIELD
这个概念你不太清楚啊
for each item in rs.RecordCount
if userid=item.name then
if pwd=item.psd then
Response.Write rs.Fields(0).Value //显示你查到的记录的值
i=1
else
response.write"密码错误"
end if
end if
next
你这里用遍历之前首先要选择一个表才行啊,你什么都没有做就打开了,当然是不行的啊
set MM_rsClient = Server.CreateObject("ADODB.Recordset")
MM_rsClient.ActiveConnection = MM_conn1_STRING
MM_rsClient.Source = "SELECT * FROM dbo.T_Courier ORDER BY col_bi_courierID ASC"
MM_rsClient.CursorType = 3
MM_rsClient.CursorLocation = 2
MM_rsClient.LockType = 3
MM_rsClient.Open
上面是dw生成的代码,你首先要决定source才行啊!
bangzzdzzgd 2004-01-30
  • 打赏
  • 举报
回复
为什么没有人给于答复?

难道是我给的分太低了吗?可我就这么多分呀!没办法,我问的问题太多了!

唉!

如果你看了贴子也不懂的话,能帮我顶一下吗?谢谢你了!你的举手之劳偶感激不尽呀!

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧