为什么找不到数据呢?

浙江云 2004-10-07 06:17:34
<%
userid=Session("yilin_status_UserID")
' Open connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

' Build SQL
strsql = "select DISTINCT order_id from [ShopList] where userid='"&userid&"'"

'Response.Write strsql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.cursorlocation = 3
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount

' Load Key for record
x_Id = rs("Id") '----------38行
x_Order_Id = rs("Order_Id")
x_Product_Id = rs("Product_Id")
x_Price3 = rs("Price3")
x_Num_ber = rs("Num_ber")
x_Summ = rs("Summ")
tot_Summ = tot_Summ + x_Summ ' Accumulate Total
cnt_Summ = cnt_Summ + 1 ' Increment no. of records
x_userid = rs("userid")
x_BuyTime = rs("BuyTime")
%>

ADODB.Recordset 错误 '800a0cc1'

在对应所需名称或序数的集合中,未找到项目。

/shoplistlist.asp,行 38
...全文
126 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
上网看看 2005-03-27
  • 打赏
  • 举报
回复
SELECT T2.ID,T2.Product_Id,T2.Price3,T2.Num_ber,T2.Summ,T2.userid,T2.BuyTime
FROM (SELECT DISTINCT Order_Id FROM [ShopList]) T1 INNER JOIN
[ShopList] T2 ON T1.Order_Id= T2.Order_Id

浙江云 2004-10-08
  • 打赏
  • 举报
回复
回:bladeinside(云淡风清)
使用刚才您的还是和我原来一样,能够过滤出不重复的有几条记录.
但还是不能显示出来.

回:jinhong618(BCB水手)
使用您的代码,出现如下错误



Microsoft JET Database Engine 错误 '80040e21'

试图执行的查询中不包含作为合计函数一部分的特定表达式 'Expr1001' 。

/shoplistlist.asp,行 34

jinhong618 2004-10-08
  • 打赏
  • 举报
回复
对不起,上边写错了应该把order by 改成group by
不好意思
bladeinside 2004-10-08
  • 打赏
  • 举报
回复
SELECT T2.ID,T2.Product_Id,T2.Price3,T2.Num_ber,T2.Summ,T2.userid,T2.BuyTime
FROM (SELECT DISTINCT Order_Id
FROM [ShopList]) T1 INNER JOIN
[ShopList] T2 ON T1.Order_Id= T2.Order_Id
jinhong618 2004-10-07
  • 打赏
  • 举报
回复
按我的经验DISTINCT只在提取一个字段时有用,如果加了别的字段,即使没有报错,结果也不是自己想要的。你的问题是:
1、查出来的结果可能不只是一条记录,所以你需要一个do while循环。
2、这条查询语句改一下:
strsql = "select max(ID) as id,Order_Id,max(Product_Id) as Order_Id,max(Price3) as Price3,max(Num_ber) as Num_ber,max(Summ) as Summ,max(userid) as userid,max(BuyTime) as BuyTime from [ShopList] where userid='"&userid&"'" order by Order_Id
不过我总觉得还应该有更简单一点的,但是我一时也想不出来,如果哪位高手有,请赐教。
bladeinside 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime from [ShopList] where Order_Id in (select DISTINCT Order_Id from [ShopList] where userid='" & userid & "')"
浙江云 2004-10-07
  • 打赏
  • 举报
回复
我想让重复的Order_Id只显示一次

strsql = "select ID,DISTINCT Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime from [ShopList] where userid='"&userid&"'"


x_Id = rs("Id")
x_Order_Id = rs("Order_Id")
x_Product_Id = rs("Product_Id")
x_Price3 = rs("Price3")
x_Num_ber = rs("Num_ber")
x_Summ = rs("Summ")
tot_Summ = tot_Summ + x_Summ
cnt_Summ = cnt_Summ + 1
x_userid = rs("userid")
x_BuyTime = rs("BuyTime")
浙江云 2004-10-07
  • 打赏
  • 举报
回复
加了也没用啊,能不能写出详细的代码给我看看?
wzgme 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime,
DISTINCT Order_Id from [ShopList] where userid='"&userid&"'"

--------------
BuyTime后边也有,号啊。。
浙江云 2004-10-07
  • 打赏
  • 举报
回复
<%
userid=Session("yilin_status_UserID")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str


strsql = "select ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime DISTINCT Order_Id from [ShopList] where userid='"&userid&"'"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.cursorlocation = 3
rs.Open strsql, conn, 1, 2 '------------------行32
totalRecs = rs.RecordCount

x_Id = rs("Id")
x_Order_Id = rs("Order_Id")
x_Product_Id = rs("Product_Id")
x_Price3 = rs("Price3")
x_Num_ber = rs("Num_ber")
x_Summ = rs("Summ")
tot_Summ = tot_Summ + x_Summ
cnt_Summ = cnt_Summ + 1
x_userid = rs("userid")
x_BuyTime = rs("BuyTime")
%>

Microsoft JET Database Engine 错误 '80040e14'

语法错误 (操作符丢失) 在查询表达式 'BuyTime DISTINCT Order_Id' 中。

/shoplistlist.asp,行 32
浙江云 2004-10-07
  • 打赏
  • 举报
回复
Microsoft JET Database Engine 错误 '80040e14'

语法错误 (操作符丢失) 在查询表达式 'BuyTime DISTINCT Order_Id' 中。

/shoplistlist.asp,行 35
浙江云 2004-10-07
  • 打赏
  • 举报
回复
回:net_lover(孟子E章) ( )
.我改成这样还不行,还是一样
<%
userid=Session("yilin_status_UserID")
' Open connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str

' Build SQL
strsql = "select ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime DISTINCT Order_Id from [ShopList] where userid='"&userid&"'"
'strsql = "select * from [ShopList]"

'Response.Write strsql
Set rs = Server.CreateObject("ADODB.Recordset")
'rs.cursorlocation = 3
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount

' Load Key for record
'x_Id = rs("Id")
x_Order_Id = rs("Order_Id")
x_Product_Id = rs("Product_Id")
x_Price3 = rs("Price3")
x_Num_ber = rs("Num_ber")
x_Summ = rs("Summ")
tot_Summ = tot_Summ + x_Summ ' Accumulate Total
cnt_Summ = cnt_Summ + 1 ' Increment no. of records
x_userid = rs("userid")
x_BuyTime = rs("BuyTime")
%>
veking 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select DISTINCT ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime

from [ShopList] where userid='"&userid&"'"


DISTINCT的意思是如果查询结果中有重复的多条数据,则只会显示其中一条
浙江云 2004-10-07
  • 打赏
  • 举报
回复
wzgme(一风一云)
还是不行,..
wzgme 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select id,Product_Id,........,DISTINCT order_id from [ShopList] where userid='"&userid&"'"
--------
把你调用的全部列出来。。
浙江云 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select DISTINCT ID,Order_Id,Product_Id,Price3,Num_ber,Summ,userid,BuyTime from [ShopList] where userid='"&userid&"'"
我改成这样还是不行啊..
浙江云 2004-10-07
  • 打赏
  • 举报
回复
我把 DISTINCT order_id 换成 * 就可以了! 完整语句该怎么写?
wzgme 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select DISTINCT order_id from [ShopList] where userid='"&userid&"'"
-------
这里只有一个字段order_id 啊。

孟子E章 2004-10-07
  • 打赏
  • 举报
回复
strsql = "select DISTINCT order_id from [ShopList] where userid='"&userid&"'"

Id字段你没有取出来啊

28,391

社区成员

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

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