ASP查询SQL数据库,但是到了SQL'单引号变成了2个''单引号

时间:2022-04-16 21:40:44
ASP  SQL原语句
"select * from Daction where D_time>'" & time1&"' and D_time<'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

进到数据库查询就变成了 select * from Daction where D_time> ''time1 '' and D_time< ''time2 '' and  ''tp '' like  ''%search% '' order by D_id DESC
请高手指点,在线等啊。。。。

这个问题困扰我一个月了,我是个网站程序和设计者

40 个解决方案

#1


不明白你的意思。
怎么进到数据库查询就变成两个了?
把你的相关代码详细地贴出来。

#2


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#3


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#4


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#5


单独把变量打出来看看带不带"

#6


自动替换了 
检查你的过滤语句
顺便  要从数据库里面读出显示单引号时候存数据库是否必须是双个单引号

#7


引用 3 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#8


引用 4 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

4楼说的对,可能是程序中那个过滤函数把字符转换了!

#9


引用 8 楼 jhwcd 的回复:
引用 4 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。 
 
4楼说的对,可能是程序中那个过滤函数把字符转换了!


同意楼上的观点,是否你有语句将单引号转换或去除了?

#10


<% dim names,times,actions,scontent
 if request.Form("submit2")="跳转" and request.Form("page1")<>"" then
 Page=request.Form("page1")
 else
  Page=request.QueryString("page")
  end if
if search<>"" then 
dim kkk
kkk="select * from Daction where D_time>'" & time1&"' and D_time<'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"
 oRs.open kkk,oconn,3,3
else 
oRs.open"select * from Daction order by D_id desc",oconn,3,3
end if

if oRs.eof and oRs.bof then
response.Write("暂时没有新闻")
else 
 oRs.PageSize = 14
 MaxPerPage = oRs.pageSize
 TotaloRs = oRs.recordCount
 Page_Number = cint(oRs.PageCount)
 If Page_Number = 0 Then Page_Number = 1
 If CLng(Page) < 1 Then Page = 1
 If CLng(Page) > Page_Number Then Page = Page_Number
 oRs.AbsolutePage = Page
 
Do While Not oRs.Eof And MM < MaxPerPage
 MM = MM + 1

names=oRs.fields("D_name")
times=oRs.fields("D_time")
actions=oRs.fields("D_action")
scontent=oRs.fields("D_content")

%>

上面是相关代码,我完全没有过滤过字符。。怎么进入SQL跟踪,里面的一个单引号变成了两个

#11


SQL 事件探查器的代码
declare @P1 int
set @P1=180150002
declare @P2 int
set @P2=8
declare @P3 int
set @P3=1
declare @P4 int
set @P4=0
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time<''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output
select @P1, @P2, @P3, @P4

你看,变成了两个单引号。。真郁闷啊···

#12


相关的功能代码都在下面了,请高手们看看。这个程序我自己做的,没字符过滤功能

 <% dim search,tp,time1,time2
if request.Form("submit")="搜索" then
    search=request.Form("search")
    tp=trim(request.Form("select"))
time1=request.Form("time1")
time2=request.Form("time2")
end if
%>
    
    
<form id="form1" name="form1" method="post" action="news_rec.asp">



<td height="25" align="center"><input name="search" type="text" id="search" value="<%= search %>" size="20" maxlength="30" /></td>
    <td colspan="3" align="left"><select name="select">
      <option value="D_name">操作人员</option>
       <option value="D_action">操作动作</option>
      <option value="D_content">操作内容</option>
    </select>      <input type="submit" name="Submit" value="搜索" /><input name="time1" type="text" id="time1" value="2008-6-12" size="10" maxlength="20" />
      至
      <label>
      <input name="time2" type="text" id="time2" value="2008-6-14" size="10" maxlength="20">
      </label></td>


if search<>"" then 
dim kkk
kkk="select * from Daction where D_time>'" & time1&"' and D_time<'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"
 oRs.open kkk,oconn,3,3
else 
oRs.open"select * from Daction order by D_id desc",oconn,3,3
end if

#13


<form id="form1" name="form1" method="post" action="">
  <table>
    <tr>
      <td height="25" align="center"><input name="search" type="text" id="search" value=" <%= search %>" size="20" maxlength="30" />
      </td>
      <td colspan="3" align="left"><select name="select">
          <option value="D_name">操作人员 </option>
          <option value="D_action">操作动作 </option>
          <option value="D_content">操作内容 </option>
        </select>
        <input type="submit" name="Submit" value="搜索" />
        <input name="time1" type="text" id="time1" value="2008-6-12" size="10" maxlength="20" />
        至
        <label>
        <input name="time2" type="text" id="time2" value="2008-6-14" size="10" maxlength="20">
        </label>
      </td>
    </tr>
  </table>
</form>
<% dim search,tp,time1,time2 
if request.Form("submit")="搜索" then 
    search=request.Form("search") 
    tp=trim(request.Form("select")) 
time1=request.Form("time1") 
time2=request.Form("time2") 
end if 

if search <>"" then 
dim kkk 
kkk="select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 
Response.Write(kkk) '输出KKK的值
end If
%>


我运行了你贴出的代码。输出结果:
select * from Daction where D_time>'2008-6-12' and D_time <'2008-6-14' and D_name like '% 123%' order by D_id DESC
没有两个单引号。

#14


如果你运行上面的程序还是出现的两个单引号的话,我想也不是程序的问题了。具体什么问题,我也期待高手解决。

#15


你在SQL 事件探查器跟踪代码看看。确实有变成两个分号。。难道没有高手帮忙解决了···。

#16




应该不是自动变成两个''了,估计是你对time1做了什么事先处理。

你可以直接试试
"select * from Daction where D_time>'2008-Dec-12'"看,有没有变成两个单引号。

100%是你的time1中本身已经有了一个单引号了。.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#17


好像从来没遇到过这样的问题.. 我也运行了你的代码.没发现错误阿..会不会是其它地方搞错了.??? 

#18


输出一下看看SQL语句

#19


sql语句中的字符串是用单引号包围来表示开始和结束的,但是字符串内容中本来就有单引号怎么办呢?就是用两个单引号。
但同时单个单引号在sql server又代表注释,这时,为防注入攻击,有些模块就会把你的单引号统一替换为两个单引号。

#20


引用 11 楼 ilflyf 的回复:
SQL 事件探查器的代码 
declare @P1 int 
set @P1=180150002 
declare @P2 int 
set @P2=8 
declare @P3 int 
set @P3=1 
declare @P4 int 
set @P4=0 
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output 
select @P1, @P2, @P3, @P4 

你看…

SQL中的N后面跟着的是一个字符串 如: N'select * from Daction',
而字符串中的单引号'是用两个''表示的 如: 字符串I'm dgz的写法是 'I''m dgz!'
所以这个地方本来就应该有两个'' 意思是这个地方是'而不是字符串的起始标记。

#21


晕了,彻底晕了。

#22


引用 20 楼 angeldgz 的回复:
引用 11 楼 ilflyf 的回复:
SQL 事件探查器的代码 
declare @P1 int 
set @P1=180150002 
declare @P2 int 
set @P2=8 
declare @P3 int 
set @P3=1 
declare @P4 int 
set @P4=0 
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output 
select …


同意....严重

#23


和程序没关系,是事件跟踪器的原因
部分程序的sql脚本就会变成2个单引号,没办法解决
调试的话自己再替换一下就可以了

#24


调试或者使用存储过程的话会自动变换的,建议你输出一下这个SQL语句~~~~

#25


SQL中的N后面跟着的是一个字符串 如: N'select * from Daction', 
而字符串中的单引号'是用两个''表示的 如: 字符串I'm dgz的写法是 'I''m dgz!' 
所以这个地方本来就应该有两个'' 意思是这个地方是'而不是字符串的起始标记。


那20楼所说的这个情况有办法解决吗?

#26


引用 24 楼 uscool 的回复:
调试或者使用存储过程的话会自动变换的,建议你输出一下这个SQL语句~~~~

SQL语句输出是没问题的,就是进入数据库查询的时候出问题··
难道这个是ASP+SQL传说中的BUG?

#27


引用 16 楼 ccssddnnhelp 的回复:
应该不是自动变成两个''了,估计是你对time1做了什么事先处理。 

你可以直接试试 
"select * from Daction where D_time>'2008-Dec-12'"看,有没有变成两个单引号。 

100%是你的time1中本身已经有了一个单引号了。. 
    
==== 思想重于技巧 ==== 



贴子分数 <20:对自已的问题不予重视。 
贴子大量未结:对别人的回答不予尊重。 


reply via CSDN viewer

数据本身是没问题的,但是就是直接给TIME赋值TIME1=XXXX TIME2=XXXX,再利用SQL语句传输TIME变量"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 
就会出问题了···

#28


11楼的 那个代码是怎么贴出来的啊..就是把一个模块直接贴出来还带颜色的...谢谢指教

#29


这个应是变理处理的问题

#30


强烈建议不要使用这种方法写SQL文 

#31


引用 30 楼 CAINIAOXIANGFEI 的回复:
强烈建议不要使用这种方法写SQL文 

那应该用什么方法写这个按日期查询语句呢··

#32


 and ''tp'' like ''%search%'' 这里有问题

#33


我以前用事件探测器也发现这个问题,但是不影响使用,除非是你传的参数有问题,我那次是一个时间类型出错,跟踪后发现这个问题,我还以为是单引号这块出问题,最后发现是参数问题。这个单引号变双引号不影响使用

#34


引用 7 楼 number123456 的回复:
引用 3 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。 

#35


引用 28 楼 yangchangdao 的回复:
11楼的 那个代码是怎么贴出来的啊..就是把一个模块直接贴出来还带颜色的...谢谢指教

选中文字部分,点那个“插入源代码”图标--就是有个#号的。

#36


sql语句中使用就双引号吧

#37


<%
dim kkk,time1,time2,tp,search
time1=1986-01-23
time2=1986-01-23
tp="name"
search="梁"

kkk="select * from Daction where D_time>""" & time1&""" and D_time <"""&time2&""" and """&tp&""" like "&"""%" & search & "%"" order by D_id DESC"
response.Write kkk
%>
试一下把代码复制下来运行一下,看看效果符合你的要求不?

#38


事件查看器里面是把你的SQL语句用字符串来表示了,如果你想复制出来直接运行的话肯定会有问题的,但是可以调用一个函数来实现这个功能.

sp_executesql N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC'

#39


引用 36 楼 tinki 的回复:
sql语句中使用就双引号吧

我的就是影响使用才麻烦··

#40


引用 37 楼 hifi38 的回复:
<% 
dim kkk,time1,time2,tp,search 
time1=1986-01-23 
time2=1986-01-23 
tp="name" 
search="梁" 

kkk="select * from Daction where D_time>""" & time1&""" and D_time <"""&time2&""" and """&tp&""" like "&"""%" & search & "%"" order by D_id DESC" 
response.Write kkk 
%> 
试一下把代码复制下来运行一下,看看效果符合你的要求不?

我明天回公司测试下

#1


不明白你的意思。
怎么进到数据库查询就变成两个了?
把你的相关代码详细地贴出来。

#2


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#3


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#4


"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#5


单独把变量打出来看看带不带"

#6


自动替换了 
检查你的过滤语句
顺便  要从数据库里面读出显示单引号时候存数据库是否必须是双个单引号

#7


引用 3 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

#8


引用 4 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。

4楼说的对,可能是程序中那个过滤函数把字符转换了!

#9


引用 8 楼 jhwcd 的回复:
引用 4 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。 
 
4楼说的对,可能是程序中那个过滤函数把字符转换了!


同意楼上的观点,是否你有语句将单引号转换或去除了?

#10


<% dim names,times,actions,scontent
 if request.Form("submit2")="跳转" and request.Form("page1")<>"" then
 Page=request.Form("page1")
 else
  Page=request.QueryString("page")
  end if
if search<>"" then 
dim kkk
kkk="select * from Daction where D_time>'" & time1&"' and D_time<'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"
 oRs.open kkk,oconn,3,3
else 
oRs.open"select * from Daction order by D_id desc",oconn,3,3
end if

if oRs.eof and oRs.bof then
response.Write("暂时没有新闻")
else 
 oRs.PageSize = 14
 MaxPerPage = oRs.pageSize
 TotaloRs = oRs.recordCount
 Page_Number = cint(oRs.PageCount)
 If Page_Number = 0 Then Page_Number = 1
 If CLng(Page) < 1 Then Page = 1
 If CLng(Page) > Page_Number Then Page = Page_Number
 oRs.AbsolutePage = Page
 
Do While Not oRs.Eof And MM < MaxPerPage
 MM = MM + 1

names=oRs.fields("D_name")
times=oRs.fields("D_time")
actions=oRs.fields("D_action")
scontent=oRs.fields("D_content")

%>

上面是相关代码,我完全没有过滤过字符。。怎么进入SQL跟踪,里面的一个单引号变成了两个

#11


SQL 事件探查器的代码
declare @P1 int
set @P1=180150002
declare @P2 int
set @P2=8
declare @P3 int
set @P3=1
declare @P4 int
set @P4=0
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time<''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output
select @P1, @P2, @P3, @P4

你看,变成了两个单引号。。真郁闷啊···

#12


相关的功能代码都在下面了,请高手们看看。这个程序我自己做的,没字符过滤功能

 <% dim search,tp,time1,time2
if request.Form("submit")="搜索" then
    search=request.Form("search")
    tp=trim(request.Form("select"))
time1=request.Form("time1")
time2=request.Form("time2")
end if
%>
    
    
<form id="form1" name="form1" method="post" action="news_rec.asp">



<td height="25" align="center"><input name="search" type="text" id="search" value="<%= search %>" size="20" maxlength="30" /></td>
    <td colspan="3" align="left"><select name="select">
      <option value="D_name">操作人员</option>
       <option value="D_action">操作动作</option>
      <option value="D_content">操作内容</option>
    </select>      <input type="submit" name="Submit" value="搜索" /><input name="time1" type="text" id="time1" value="2008-6-12" size="10" maxlength="20" />
      至
      <label>
      <input name="time2" type="text" id="time2" value="2008-6-14" size="10" maxlength="20">
      </label></td>


if search<>"" then 
dim kkk
kkk="select * from Daction where D_time>'" & time1&"' and D_time<'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC"
 oRs.open kkk,oconn,3,3
else 
oRs.open"select * from Daction order by D_id desc",oconn,3,3
end if

#13


<form id="form1" name="form1" method="post" action="">
  <table>
    <tr>
      <td height="25" align="center"><input name="search" type="text" id="search" value=" <%= search %>" size="20" maxlength="30" />
      </td>
      <td colspan="3" align="left"><select name="select">
          <option value="D_name">操作人员 </option>
          <option value="D_action">操作动作 </option>
          <option value="D_content">操作内容 </option>
        </select>
        <input type="submit" name="Submit" value="搜索" />
        <input name="time1" type="text" id="time1" value="2008-6-12" size="10" maxlength="20" />
        至
        <label>
        <input name="time2" type="text" id="time2" value="2008-6-14" size="10" maxlength="20">
        </label>
      </td>
    </tr>
  </table>
</form>
<% dim search,tp,time1,time2 
if request.Form("submit")="搜索" then 
    search=request.Form("search") 
    tp=trim(request.Form("select")) 
time1=request.Form("time1") 
time2=request.Form("time2") 
end if 

if search <>"" then 
dim kkk 
kkk="select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 
Response.Write(kkk) '输出KKK的值
end If
%>


我运行了你贴出的代码。输出结果:
select * from Daction where D_time>'2008-6-12' and D_time <'2008-6-14' and D_name like '% 123%' order by D_id DESC
没有两个单引号。

#14


如果你运行上面的程序还是出现的两个单引号的话,我想也不是程序的问题了。具体什么问题,我也期待高手解决。

#15


你在SQL 事件探查器跟踪代码看看。确实有变成两个分号。。难道没有高手帮忙解决了···。

#16




应该不是自动变成两个''了,估计是你对time1做了什么事先处理。

你可以直接试试
"select * from Daction where D_time>'2008-Dec-12'"看,有没有变成两个单引号。

100%是你的time1中本身已经有了一个单引号了。.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#17


好像从来没遇到过这样的问题.. 我也运行了你的代码.没发现错误阿..会不会是其它地方搞错了.??? 

#18


输出一下看看SQL语句

#19


sql语句中的字符串是用单引号包围来表示开始和结束的,但是字符串内容中本来就有单引号怎么办呢?就是用两个单引号。
但同时单个单引号在sql server又代表注释,这时,为防注入攻击,有些模块就会把你的单引号统一替换为两个单引号。

#20


引用 11 楼 ilflyf 的回复:
SQL 事件探查器的代码 
declare @P1 int 
set @P1=180150002 
declare @P2 int 
set @P2=8 
declare @P3 int 
set @P3=1 
declare @P4 int 
set @P4=0 
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output 
select @P1, @P2, @P3, @P4 

你看…

SQL中的N后面跟着的是一个字符串 如: N'select * from Daction',
而字符串中的单引号'是用两个''表示的 如: 字符串I'm dgz的写法是 'I''m dgz!'
所以这个地方本来就应该有两个'' 意思是这个地方是'而不是字符串的起始标记。

#21


晕了,彻底晕了。

#22


引用 20 楼 angeldgz 的回复:
引用 11 楼 ilflyf 的回复:
SQL 事件探查器的代码 
declare @P1 int 
set @P1=180150002 
declare @P2 int 
set @P2=8 
declare @P3 int 
set @P3=1 
declare @P4 int 
set @P4=0 
exec sp_cursoropen @P1 output, N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC', @P2 output, @P3 output, @P4 output 
select …


同意....严重

#23


和程序没关系,是事件跟踪器的原因
部分程序的sql脚本就会变成2个单引号,没办法解决
调试的话自己再替换一下就可以了

#24


调试或者使用存储过程的话会自动变换的,建议你输出一下这个SQL语句~~~~

#25


SQL中的N后面跟着的是一个字符串 如: N'select * from Daction', 
而字符串中的单引号'是用两个''表示的 如: 字符串I'm dgz的写法是 'I''m dgz!' 
所以这个地方本来就应该有两个'' 意思是这个地方是'而不是字符串的起始标记。


那20楼所说的这个情况有办法解决吗?

#26


引用 24 楼 uscool 的回复:
调试或者使用存储过程的话会自动变换的,建议你输出一下这个SQL语句~~~~

SQL语句输出是没问题的,就是进入数据库查询的时候出问题··
难道这个是ASP+SQL传说中的BUG?

#27


引用 16 楼 ccssddnnhelp 的回复:
应该不是自动变成两个''了,估计是你对time1做了什么事先处理。 

你可以直接试试 
"select * from Daction where D_time>'2008-Dec-12'"看,有没有变成两个单引号。 

100%是你的time1中本身已经有了一个单引号了。. 
    
==== 思想重于技巧 ==== 



贴子分数 <20:对自已的问题不予重视。 
贴子大量未结:对别人的回答不予尊重。 


reply via CSDN viewer

数据本身是没问题的,但是就是直接给TIME赋值TIME1=XXXX TIME2=XXXX,再利用SQL语句传输TIME变量"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 
就会出问题了···

#28


11楼的 那个代码是怎么贴出来的啊..就是把一个模块直接贴出来还带颜色的...谢谢指教

#29


这个应是变理处理的问题

#30


强烈建议不要使用这种方法写SQL文 

#31


引用 30 楼 CAINIAOXIANGFEI 的回复:
强烈建议不要使用这种方法写SQL文 

那应该用什么方法写这个按日期查询语句呢··

#32


 and ''tp'' like ''%search%'' 这里有问题

#33


我以前用事件探测器也发现这个问题,但是不影响使用,除非是你传的参数有问题,我那次是一个时间类型出错,跟踪后发现这个问题,我还以为是单引号这块出问题,最后发现是参数问题。这个单引号变双引号不影响使用

#34


引用 7 楼 number123456 的回复:
引用 3 楼 swing41 的回复:
"select * from Daction where D_time>'" & time1&"' and D_time <'"&time2&"' and "&tp&" like "&"'%" & search & "%' order by D_id DESC" 

如果估计没错的话,应该是你用了仿sql注入语句,将字符串的单引号转换成了双单引号。 

#35


引用 28 楼 yangchangdao 的回复:
11楼的 那个代码是怎么贴出来的啊..就是把一个模块直接贴出来还带颜色的...谢谢指教

选中文字部分,点那个“插入源代码”图标--就是有个#号的。

#36


sql语句中使用就双引号吧

#37


<%
dim kkk,time1,time2,tp,search
time1=1986-01-23
time2=1986-01-23
tp="name"
search="梁"

kkk="select * from Daction where D_time>""" & time1&""" and D_time <"""&time2&""" and """&tp&""" like "&"""%" & search & "%"" order by D_id DESC"
response.Write kkk
%>
试一下把代码复制下来运行一下,看看效果符合你的要求不?

#38


事件查看器里面是把你的SQL语句用字符串来表示了,如果你想复制出来直接运行的话肯定会有问题的,但是可以调用一个函数来实现这个功能.

sp_executesql N'select * from Daction where D_time>''2008-6-14 22:51:31'' and D_time <''2008-6-14 22:43:29'' and D_name like ''%admin %'' order by D_id DESC'

#39


引用 36 楼 tinki 的回复:
sql语句中使用就双引号吧

我的就是影响使用才麻烦··

#40


引用 37 楼 hifi38 的回复:
<% 
dim kkk,time1,time2,tp,search 
time1=1986-01-23 
time2=1986-01-23 
tp="name" 
search="梁" 

kkk="select * from Daction where D_time>""" & time1&""" and D_time <"""&time2&""" and """&tp&""" like "&"""%" & search & "%"" order by D_id DESC" 
response.Write kkk 
%> 
试一下把代码复制下来运行一下,看看效果符合你的要求不?

我明天回公司测试下