if (xuanze = "1") then
clause = clause & " and (R_NAME LIKE '%"&Pr_name&"%' or R_ID="&Pr_name&")"
end if
select R_ID,a.SB,R_NAME,DETAIL,R_FACTORY,R_SUPPLIER,R_PHONE,(b.SMALLTYPE)c,a.SMALLTYPE,Isnull((select top 1 PID from PHOTOLIST where PHOTOLIST.R_ID=ROWNAME.R_ID),0)PID from ROWNAME left join TYPELIST a on ROWNAME.R_SORT=a.SB left join TYPELIST b on ROWNAME.MEASURE=b.SB where 1=1 "& clause &" order by R_ID DESCR_NAME为字符型 R_ID为INT型字段
当变量Pr_name为数字的时候有就结果,Pr_name为字符的时候就没有结果这是为什么?
select R_ID,a.SB,R_NAME,DETAIL,R_FACTORY,R_SUPPLIER,R_PHONE,(b.SMALLTYPE)c,a.SMALLTYPE,
Isnull((select top 1 PID from PHOTOLIST where PHOTOLIST.R_ID=ROWNAME.R_ID),0)PID from ROWNAME
left join TYPELIST a on ROWNAME.R_SORT=a.SB left join TYPELIST b on ROWNAME.MEASURE=b.SB
where 1=1 and (R_ID=268 or R_NAME LIKE '%羊毛%') order by R_ID DESC
吧clause 直接用数据代替掉则可以找到数据这是为什么?
结果
R_ID SB R_NAME DETAIL R_FACTORY R_SUPPLIER R_PHONE c SMALLTYPE PID
269 2a1 4寸羊毛刷 0 0 把 油漆 0
268 2a4 铜锁 0 0 把 铜配件 0
这里已经加了%的
clause = clause & " and (R_NAME LIKE '%"&Pr_name&"%' or R_ID="&Pr_name&")"
text1.text=clause
看看这个值是否有语法 或逻辑错误
这样就可以了
用varchar(20)。