急!用ASP在先查询!求教?

kelly12345 2003-09-05 03:45:58
我在frantpage网页上实现一个简单的查询!并把查询的结果分页显示!
以下是我的代码,不知道哪里有错!
<%if request("submit")="查询" then
staffno1=request("t1");
dbconn=Server.CreateObject("ADODB.Connection");
dbconn.open("DSN=vendors;UID=sa;PWD=123456");
rs=Server.createobject("ADODB.recordset");
var sqlstr="select * from vendors where vendor_name='"&staffno1&"' ";
rs.open(sqlstr,dbconn,1);
if(rs.recordcount<1)
{
msgbox "无符合条件记录!";
}
else{
response.write("<P><center><B>数据查询结果</B></center></P>");
response.write("<tr><td><b>ID</b></td><td><b>vendor_name</b></td><td><b>product</b></td>");
for(var i=1;i<=rs.pagesize;i++)
{ if(!rs.Eof) {
response.write("<td><span style='font-size:9t'>"+rs("ID")+"</span></td>");
response.write("<td><span style='font-size:9t'>"+rs("vendor_name")+"</span></td>");
response.write("<td><span style='font-size:9t'>"+rs("product")+"</span></td>");
response.write("</tr>");
rs.movenext();
}
else break;
}
response.write("</table></form>");
rs.close();
dbconn.close();
</script>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>供应商查询</title>
</head>
<body>
<p>
<BR>
<p><font size="6" color="#008000"><b><i>供应商查询</i></b></font></p>
<p> </p>
<p><font size="3" color="#000000"><b>请输入产品名称:</b></font></p>
<form method="POST" action="--WEBBOT-SELF--">
<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.txt"
S-Format="TEXT/CSV" S-Label-Fields="TRUE" --><p><input type="text" name="T1" size="20"><input type="submit" value="查询" name="submit"></p>
</form>
<p> </p>

</body>

</html>




...全文
17 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DerryZhang 2003-09-06
  • 打赏
  • 举报
回复
对,现在把你的代码中有问题的地方总结如下:
1、</script>结束语句没有对应的开始语句<script>.
VBScrpt夹杂着使用JavaScript一定要声明脚本定界符的。
2、接收表单数据采用request.form方法。
3、创建ADODB连接对象应该使用set [对象实例]=...
4、Js语法错误。Js每个函数都应该加()
/* if(rs.recordcount<1)
{
msgbox "无符合条件记录!"; //js中好像没有这种用法
} */
本身就是错误的。

以上几点看法供你参考。共同学习。
stefli 2003-09-05
  • 打赏
  • 举报
回复
if 语句就错了。
vb里没有用分号哦。
不要在句子结尾处加上这个东西。
你有不是在写javascript
showerXP 2003-09-05
  • 打赏
  • 举报
回复
是啊。我也是看得一头雾水。像“!”东东不知道在vbscript会怎么样。当然,我也是初学者。
qunluo 2003-09-05
  • 打赏
  • 举报
回复
good
lobu 2003-09-05
  • 打赏
  • 举报
回复
这段代码的错误很多,服务端脚本到底是vbscript还是javascript?

对象必须用 set 赋值
ttt2 2003-09-05
  • 打赏
  • 举报
回复
set rs=Server.createobject("ADODB.recordset");
富察咪咪 2003-09-05
  • 打赏
  • 举报
回复
Set rs=Server.createobject("ADODB.recordset");
whb147 2003-09-05
  • 打赏
  • 举报
回复
DSN出错了,呵呵呵
看看你的驱动有没有问题?
要不用别的方法连接看看
一、连接ACCESS数据库
1、在ASP语句中直接指定数据库驱动(oledb直接连接)
1) 用SET建立连接对象
set cnobj = Server.CreateObject("ADODB.Connection")
2)给出数据库驱动的生产厂商和版本号以及你的ACCESS数据库所在的位置
strcon="provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("/wang/data/bbs.mdb")
记住:strcon是字符串变量你可以随便给,server.mappath是取数据库的磁盘路径,后面所跟的一定是站点路经。
本句也可以写成:
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath("("/wang/data/bbs.mdb")
3)用链接对象的OPEN方法打开数据库
cnobj.Open strcon
到此连接完成,后面就是建立记录集对象了,如:
set rstobj=server.createobject("adodb.recordset") '此句用SET语句建立记录集对象RSTOBJ
set rstobj=cnobj.execute("select * from users") '此句利用cnobj对象的execute方法执行SELECT查询语句,users是库中的表名称

2、利用ODBC数据源(odbc数据源连接)
1) 首先你要在你的操作系统里建立ODBC数据源,ODBC数据源可分为“系统型”和“文件型”,他们的区别在于“系统型”是..连接数据库的信息建立在“系统注册表”里,“文件型”则是..以文件形式存储在ODBC源的目录下面,经我个人测试,两者均可在ASP中连通ACCESS数据库,具体建立ODBC数据源的方法,请大家参考有关书籍,这里不再累述
2) 如果你用的是“文件型”数据源,那么请用以下代码连接数据库
set cnobj = Server.CreateObject("ADODB.Connection")
cnobj.open "filedsn=wang.dsn"
set rstobj=server.createobject("adodb.recordset")
set rstobj=cnobj.execute("select * from users")
其中filedsn是指定"文件型"数据源的命令,本例指定的是wang.dsn数据源名,如果你连接的是SQL SERVER,那么还需要更改wang.dsn这个文件,如须了解,请发EMAIL给我
3) 如果你用的是“系统型”数据源,那么请用以下代码
set cnobj = Server.CreateObject("ADODB.Connection")
cnobj.open "wang"
set rstobj=server.createobject("adodb.recordset")
set rstobj=cnobj.execute("select * from users")
其中wang是系统型数据源的名称

二、连接SQL SERVER数据库
1) oledb直接连接
set cnobj = Server.CreateObject("ADODB.Connection")
strcon="PROVIDER=SQLOLEDB;DATA SOURCE=(主机名称或ip,如果是本地,可以不要);DATABASE=(数据库名,注不是保存的文件名,而是企业管理器中的数据库名称);UID=(登陆名);PWD=(登陆密码)"
cnobj.Open strcon
set rstobj=server.createobject("adodb.recordset")
set rstobj=cnobj.execute("select * from users")

2)“文件型”ODBC数据源连接1
set cnobj = Server.CreateObject("ADODB.Connection")
cnobj.open "filedsn=wang.dsn;database=db1;uid=;pwd=;"
set rstobj=server.createobject("adodb.recordset")
set rstobj=cnobj.execute("select * from users")

3)“文件型”ODBC数据源连接2 (安全性最高)
和第二种方法连接几乎一样,只是将密码写在确确实实存在的ODBC文本文件中,一般存放在(盘符:\program files\common files\odbc\data sources)目录下,本例为wang.dsn文件,用记事本打开它,在"UID=用户名"这一行下加上一行PWD="UID给出的用户密码",这是安全性最高的一种连接了,因为除了在WEB服务器上登录,没人可以读取到这个文件,也就不会知道SQL的用户名和密码,最后将SQL连接中的第三种方法第2行改为:cnobj.open "filedsn=wang.dsn"

4)系统型连接

set cnobj = Server.CreateObject("ADODB.Connection")
cnobj.open "dsn=localserver;uid=sa;pwd=sa;"
set rstobj=server.createobject("adodb.recordset")
set rstobj=cnobj.execute("select * from users")

注:其实和“文件型”几乎一样,只有一句dsn=localserver不一样,在“文件型”中是filedsn=wang.dsn,因为“系统型”ODBC是在系统注册表中进行连接,而“文件型”是确确实实存在的文本文件,本例中localserver是建立的系统ODBC数据源名称,wang.dsn是文件型数据源的文本文件名.

kelly12345 2003-09-05
  • 打赏
  • 举报
回复
说脚本错误,第5行有错!
Fengq 2003-09-05
  • 打赏
  • 举报
回复
出现什么错误?

28,391

社区成员

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

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