0
<html>
<title>Test</title>
<body bgcolor="FFFFFF">

<%
sort = CStr(Request("sort"))
search = CStr(Request("search"))
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User   ID=sa;Initial Catalog=asdf;Data Source=WIN-123"

Set rs = Server.CreateObject("ADODB.Recordset")
If sort = "ascending" Then
SQL = "select top 50 * from asdf order by Name"
ElseIf (search Is Not Nothing)
SQL = "select * from asdf WHERE name = '" & search & "'"
Else
SQL = "select top 50 * from asdf"
End If
rs.open SQL, conn
%>
<center><form acion="index.asp">
Search Name:<input name="search" /><input type="submit" value="Submit" />
</form></center>

でエラーが発生します

Else If (search Is Not Nothing)

行、私が言えることから、それはうまくいくはずです。もちろん、何らかの理由でサーバー上のサイトを参照して、実際のエラーが何であるかを確認することもできません。

4

1 に答える 1

1

IIS 5でテスト済み、option explicit使用しない場合

search=CStr(Request("search"))

yourは( )searchに初期化されています。stringVarType: 8

したがって、searchが「空」であっても、IsEmptyまたは同様の関数/ステートメントを使用して、それが空であるかどうかを確認することはできません。使用する

ElseIf search<>"" Then

直接。

また、SQLクエリをサニタイズすることを忘れないでください...

于 2012-08-24T05:13:11.387 に答える