高手请进!asp查询sql server不能显示数据的问题?

林仪明 2002-10-10 07:12:38
我使用如下代码:
dim sql1,rs1
set rs1=Server.CreateObject("Adodb.Recordset")
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "
rs1.open sql1,conn,1,2

if not (rs1.EOF or rs1.BOF) then
msg1="<table width=100% border=1 bordercolorlight=000000 cellspacing=0 cellpadding=2 bordercolordark=FFFFFF><tr bgcolor=FFCC99 align=center><td>船舶类型</td><td>船龄</td><td>适航区域</td><td>船籍</td><td>航旗</td><td>载重</td><td>登记时间</td><td width=100>编号</td></TR>"
for j=1 to 10
if rs1.EOF or rs1.BOF then
exit for
else
msg1=msg1&"<tr><td>"&rs1("船名")&"</td><td>"&rs1("船舶类型")&"</td><td>"&rs1("建造厂")&"</td><td>"&rs1("建造时间")&"</td><td>"&rs1("船籍")&"</td><td>"&rs1("船舶所有人")&"</td><td>"&rs1("航区")&"</td><td><a href='/index-5-2.asp?id="&rs1("id")&"/'return true;"&chr(34)&" onmouseout="&chr(34)&"window.status='';return true;"&chr(34)&">"&rs1("id")&"</td></tr>"
rs1.MoveNext
end if
next
msg1=msg1&"</table>"
end if


但页面只显示:
船舶类型 船龄 适航区域 船籍 航旗 载重 登记时间 编号


而数据没有显示!
我在数据库里有2条测试数据!

那里出问题?请高手指点,是不是sql server 的配置有问题啊!
...全文
119 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
cshadow 2002-10-15
  • 打赏
  • 举报
回复
恭喜
林仪明 2002-10-15
  • 打赏
  • 举报
回复
呵呵!解决了!是这样的!
为了让iis访问sql server ,在设置server实例时要使用混合登陆模式,这样后在数据库中建立用户,有db_owner的权力。这样才可以用asp来访问!
baisun 2002-10-15
  • 打赏
  • 举报
回复
我也知道了,呵呵
rex79 2002-10-14
  • 打赏
  • 举报
回复
1.访问错了数据服务器
2.将数据库换台机器试试
3.字符集有没有错误
林仪明 2002-10-12
  • 打赏
  • 举报
回复
还是不行啊!
BrightEye 2002-10-12
  • 打赏
  • 举报
回复
介绍几种标准的连接方式:
For Standard Security

oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"

For a Trusted Connection

oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"Integrated Security=SSPI"

To connect to a "Named Instance"

oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName\myInstanceName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
Note: In order to connect to a SQL Server 2000 "named instance", you must have MDAC 2.6 (or greater) installed.


To Prompt user for username and password

oConn.Provider = "sqloledb"
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName"

To connect to SQL Server running on the same computer

oConn.Open "Provider=sqloledb;" & _
"Data Source=(local);" & _
"Initial Catalog=myDatabaseName;" & _
"User ID=myUsername;" & _
"Password=myPassword"

BrightEye 2002-10-11
  • 打赏
  • 举报
回复
dim sql1,rs1
set rs1=Server.CreateObject("Adodb.Recordset")
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "
rs1.open sql1,conn,1,1
if not(rs1.bof and rs.eof) then
do while not rs.eof
response.write rs("id")&"<br>"
rs1.MoveNext
loop
else
response.write "No record!"
end if
看这个有输出吗?

coffeegirl 2002-10-11
  • 打赏
  • 举报
回复
Active Server Pages 错误 'ASP 0113'
脚本超时
可能是造成死循环了,你再仔细的检查一下循环的那段代码,
也许是漏掉什么语句了

这一句:
response.write rs1.recordcount
写在rs1.open语句的后面看看结果是多少
rex79 2002-10-11
  • 打赏
  • 举报
回复
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "

把 dbo.船舶卖出表 改为 船舶卖出表,
or
sql1="select id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "

try try!!
林仪明 2002-10-11
  • 打赏
  • 举报
回复
to BrightEye(问个不休):用了你的方法但还是不行!
to lily35000(舒思) :没有显示结果!
to hjbwt(地主);你的response.write rs1.recordcount没有显示结果!

哪位大虾帮个忙!我给200分!
林仪明 2002-10-11
  • 打赏
  • 举报
回复
是不是要设置表的用户权限啊!但我也设置了!
但在设置列权限时显示没有列!
lily35000 2002-10-11
  • 打赏
  • 举报
回复
(1)把:
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "
改为:
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from 船舶卖出表 "
(2)把for循环改为do while循环
**************************
LILY SHU [SadWorld Office]
**************************
lily35000 2002-10-11
  • 打赏
  • 举报
回复
(1)把:
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from dbo.船舶卖出表 "
改为:
sql1="select top 10 id,船名,船舶类型,建造厂,建造时间,船籍,船舶所有人,航区 from 船舶卖出表 "
(2)把for循环改为do while循环
**************************
LILY SHU [SadWorld Office]
**************************
BrightEye 2002-10-11
  • 打赏
  • 举报
回复
rs1.open sql1,conn,1,2------->rs1.open sql1,conn,1,1试试

for j=1 to 10----------->改为Do while not rs1.eof
'if rs1.EOF or rs1.BOF then '永远不可能为真,去掉
'exit for '永远不可能为真,去掉
'else
msg1=msg1&"<tr><td>"&rs1("船名")&"</td><td>"&rs1("船舶类型")&"</td><td>"&rs1("建造厂")&"</td><td>"&rs1("建造时间")&"</td><td>"&rs1("船籍")&"</td><td>"&rs1("船舶所有人")&"</td><td>"&rs1("航区")&"</td><td><a href='/index-5-2.asp?id="&rs1("id")&"/'return true;"&chr(34)&" onmouseout="&chr(34)&"window.status='';return true;"&chr(34)&">"&rs1("id")&"</td></tr>"
rs1.MoveNext
'end if
'next----------->Loop
hjbwt 2002-10-11
  • 打赏
  • 举报
回复
你先写一下response.write rs1.recordcount
如果是-1,则是你的conn的cursorlocation属性没有付值,让他等于3就行了,不过在conn.open 之前写
haley_hj 2002-10-11
  • 打赏
  • 举报
回复
把你连接数据库的代码贴出来看看……
lins1980 2002-10-11
  • 打赏
  • 举报
回复
up!
haley_hj 2002-10-11
  • 打赏
  • 举报
回复
你的问题出来了,DATA SOURCE应该为数据库大名字:
myconn="Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=database_name;Initial Catalog=xmship;User Id=administrator;Password=opendell.net;"
林仪明 2002-10-11
  • 打赏
  • 举报
回复
以下对于我的SQL SERVER数据库说明:
我的server实例是TW-SERVER\SERVER(TW-SERVER是我的服务器名)。
我的验证模式是window验证。
我的自建数据库是名xmship,
我自建了一个数据库用户,其帐户名是webmaster,密码是xmshipping,它有db_owner的权限。

请大虾帮忙解决!200分相送,不够再加!
林仪明 2002-10-11
  • 打赏
  • 举报
回复
我使用如下语句测试打开的记录:
<% response.write rs.state %>
页面显示为0,说明记录集是关平闭的,
于是我使用如下语句测试连接数据库:
<% response.write conn.state %>
页面显示为0,说明连接失败了!

我的连接语句如下:
<%
on error resume next
myconn="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=administrator;PWD=opendell.net;Initial Catalog=xmship;Data Source=localhost"
set conn=server.createobject("adodb.connection")
conn.cursorlocation=2
conn.open myconn

%>

dui
加载更多回复(10)

28,409

社区成员

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

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