asp中 or 怎么用才能使下面的筛选生效

asp中 or 怎么用才能使下面的筛选生效


页面功能:
此页面名字:"页面b"
当上一个"页面a"的参数"yy"传到"页面b"时,有可能是编号,有可能是文字,根据获取的不同进行筛选.
  问题:
  如何加"or" 可以对这个页面进行两种筛选,比如:
在第5行加入 or k_name.就是说,当yy=k_sdyy 或yy=k_name时,显示此记录集中的内容.
  可是我试过这样不行,请问or应该加在哪?
<%
Dim hy_id__MMColParam
hy_id__MMColParam = "1"
If (Request.QueryString("yy") <> "") Then 
  hy_id__MMColParam = Request.QueryString("yy")
End If
%>
<%
Dim hy_id
Dim hy_id_numRows
Set hy_id = Server.CreateObject("ADODB.Recordset")
hy_id.ActiveConnection = MM_rs_STRING
hy_id.Source = "SELECT * FROM hy WHERE k_sdyy = '" + Replace(hy_id__MMColParam, "'", "''") + "'"
hy_id.CursorType = 0
hy_id.CursorLocation = 2
hy_id.LockType = 1
hy_id.Open()
hy_id_numRows = 0
%>
提问者采纳

hy_id__MMColParam = Replace(hy_id__MMColParam, "'", "''")
hy_id.Source = "SELECT * FROM hy WHERE CStr(k_sdyy) = '" & hy_id__MMColParam & "' Or  CStr(k_name) = '" & hy_id__MMColParam & "'"
追问
我直接粘了上去,还是不行啊
2014-02-03 23:06
回答
提示什么错误?哪行?
2014-02-03 23:11
追问
此页面还有一个关联记录,和这个表是一样的,当我把你给的代码也加在这个表里...出错了,那个关联表里的名字,yy号都能正确显示,唯独场时不能显示,请问这是因为什么? 

  你给我的这个语句是不是只能在一个记录集里显示
今天 00:28
提问者评价
这各答案是正确的,可是....又出现了新的问题,就是这个语句好像不能用关联的数据库,关联数句显示不出




给你一个最简单的例子参考下吧:
<%
 dim aa,bb
 aa = 10
 bb = 20
 
 if aa = 10 or bb > 20 then
 response.Write("正确!")
 end if
%>
如果你还不懂请随时和我联系,必答!
追问
这个我看懂了,可是不知道怎么结合在我那里
今天 00:19
回答
你没有提供完整的代码供我们参考,我们是很难帮到你的,至少你再提供发送页的代码给我们参考,或者把你的全部源码发给我看看也行?六五九八六一五二四
今天 00:22
追问
全部代码,百度提示太多,不让放进来
今天 00:53
回答
 
   
 
   
 
   
 
   
 
   
加:六五九八六一五二四


落叶l无情  | 五级
你可以先行判断 hy_id__MMColParam 是编号还是文字,然后根据此构造不同的sql语句。

比如你的编号是纯数字的,可以用isnumric之类的判断。又比如你的编号符合某个规律之类。
追问
你好我的编号是纯数字,请问体来写一下吗?我不会编程,我只会用dreamweaver的工具做程序,可是代码不太会
2014-02-03 22:39
回答
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%
Dim  hy_id__MMColParam
hy_id__MMColParam =  "1"
If  (Request.QueryString( "yy" ) <>  "" Then 
   hy_id__MMColParam = Request.QueryString( "yy" )
End  If
%>
<%
Dim  hy_id,s                  '改动
Dim  hy_id_numRows
Set  hy_id = Server.CreateObject( "ADODB.Recordset" )
hy_id.ActiveConnection = MM_rs_STRING
If  IsNumeric(hy_id__MMColParam) then               '改动
     s= "k_name='" +hy_id__MMColParam+ "'"             '编号,假设k_name字段为编号
Else
     s= "k_sdyy='" +Replace(hy_id__MMColParam,  "'" "''" )+ "'"    '文字
End  If
hy_id.Source =  "SELECT * FROM hy WHERE "  + s         '改动
hy_id.CursorType = 0
hy_id.CursorLocation = 2
hy_id.LockType = 1
hy_id.Open()
hy_id_numRows = 0
%>
2014-02-03 23:34
追问
错误类型:
ADODB.Field (0x800A0BCD)
BOF 或 EOF 
中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/yychenxi/show_jg.asp, 第 495 
行
今天 00:18
回答
这个错误表示记录为空,即数据库里面没有匹配项,确认你的数据库里面k_name字段是不是编号,类型是什么(文本还是数字),以及传递的yy在数据库里是否存在。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值