0

以下のシナリオを考慮すると、リンク内での以下のbetweenの使用は正しいのでしょうか。

main.aspページ

<a href="http://details.asp?number between 01 and 08>)
 click here for number between 1 and 8
</a>

これはアクセス中のクエリです

select * from table
where right("000" & number,2) between [enter start number] and [enter end number]

これはアクセス中のテーブルです

number| field1| field2| field3
1     | xys   | abc   | at
2      |sdfd  | dfasd | dd
3     | sdfd  | ddd    | dd 

以下はdetails.aspコードです

<html>
<body>

<%
Dim numCategoryID
numCategoryID = Request.Querystring("number")

set conn=Server.CreateObject("ADODB.Connection")
conn.open "query"

set rs = Server.CreateObject("ADODB.recordset")
strQuery = "queryname '" & numCategoryID & "'"
rs.Open strQuery, conn
%>

<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
   <td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>

上記のコードに誤りがありましたらお知らせください。実際、リンクmain.aspをクリックすると、1から8までの数字のクエリが開くはずです。

これは、ユーザーがフォームに2つの数値を入力したときに、2つの数値の間で出力を取得する3回目の試みです。

<%
dim startnumber, endnumber
startnumber = Request.form("number")
endnumber = Request.form("number")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "connection"

set rs = Server.CreateObject("ADODB.recordset")
strQuery = "SELECT * from query " _
& "where number between" & startnumber_
& "& endnumber;
rs.Open strQuery, conn
%>

<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
   <td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
4

1 に答える 1

0

ここにいくつかのアドバイスが付いた作り直されたバージョンがあります、それが正しく機能するかどうかは私を驚かせます、それはあなたにアイデアを与えるだけです、また番号を渡すこととデータベースからの選択についての部分はおそらくあなたが望むものとは異なります、とにかくチェックしてください要求されたパラメータで、パラメータが正しい値である場合にのみ残りを表示し、そうでない場合はメッセージを表示します

'no sql parts in your url, just parameters with a value
'this just indicates you want the numbers between 1 and 8, 
'doesn't select a specific number, 
'then you need eg a form with an input box in your main.asp page

'main.asp
<a href="http://details.asp?number=true>) 
 click here for number between 1 and 8 
</a> 

'details.asp
'best not mix html with code, using one code block here
w "<html>"
w "  <body>"
dim number, conn, rs, connectionstring, strQuery
number = Request.Querystring("number")
if number then
  'adapt the connectionstring for other versions of access and/or files
  connectionString = "DBQ=" & Server.MapPath("\mydb.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
  set conn = Server.CreateObject("ADODB.Connection") 
  conn.open ConnectionString
  'best to not be dependent on a query, put your sql here
  'no need for an empty recordset first
  strQuery = "select * from table where number between 1 and 8;"
  set rs = conn.execute(strQuery)

  w "      <table border='1' width='100%'>"
  w "        <tr>"
  for each x in rs.Fields
    w "        <th>" & x.name & "</th>"
  next 
  w "        </tr>"
  do until rs.EOF
    w "      <tr>"
    for each x in rs.Fields
      w "      <td>" & x.value & "</td>"
    next 
    rs.MoveNext
    w "      </tr>"
  loop

  rs.close 
  conn.close
  set conn = nothing 'close and cleanup your connection properly

  w "    </table>"
else
  w "No parameter number found"
end if
w "  </body>"
w "</html>"
'--- ---'
sub w (text)
  response.write(text) & VbCrLf
end sub
%> 

データベース接続をテストするには、次のようなaspを作成します

<%
on error resume next
connectionString = "DBQ=" & Server.MapPath("\mydb.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
      set conn = Server.CreateObject("ADODB.Connection") 
      conn.open ConnectionString
if err.number <> 0 then
  response.write err.description
else
  response.write "Connection was succesfull.."
end if
%>
于 2012-06-15T11:58:42.263 に答える