高手请进!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 的配置有问题啊!
...全文
112 30 打赏 收藏 转发到动态 举报
写回复
用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,391

社区成员

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

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