0

エラーは、BOF または EOF のいずれかが True であるか、現在のレコードが削除されていることを示しています。要求された操作には現在のレコードが必要です。

別のサイトから番号である ID を受け取り、ID に一致するデータを編集するコードがあります。

<body>    
<table style="width: 100%">
    <tr>
    <!-- #include file="header.html"-->
        </tr>
</table>
<table>
<tr >
<td style="width:885px" class="style2" >
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "C:\inetpub\wwwroot\library\database.mdb"
cid=Request.Form("number")
if Request.form("firstname")="" then
set rs=Server.CreateObject("ADODB.Recordset")

  rs.open "SELECT * FROM users WHERE no='" & cid & "'",conn
  %>
<form method="post" action="change.asp">
<table>
  <%for each x in rs.Fields%>
  <tr>
  <td><% Response.Write(x.name)%></td>
  <td><input name='<%Response.Write(x.name)%>' value='<%Response.Write(x.value)%>'></td>
  <%next%>
  </tr>
  </table>
    <br /><br />
  <input type="submit" value="Update record">
  </form>
<%
else
    sql="UPDATE users SET "
    sql=sql & "firstname='" & Request.Form("firstname") & "',"
    sql=sql & "lastname='" & Request.Form("lastname") & "',"
    sql=sql & "Gender='" & Request.Form("Gender") & "'"
  sql=sql & " WHERE no='" & cid & "'"
  on error resume next
  conn.Execute sql
  if err<>0 then
    response.write("No update permissions!")
  else
    response.write("Record " & cid & " was updated!")
  end if
end if
conn.close
%>


</td>
<td><!--#include file="sideMenu.html"-->
</td>
</tr>
</table>
</body>
4

2 に答える 2

1
  <body>    
  <table style="width: 100%">
      <tr>
      <!-- #include file="header.html"-->
          </tr>
  </table>
  <table>
  <tr >
  <td style="width:885px" class="style2" >
  <%
  set conn=Server.CreateObject("ADODB.Connection")
  conn.Provider="Microsoft.Jet.OLEDB.4.0"
  conn.Open "C:\inetpub\wwwroot\library\database.mdb"
  cid=Request.Form("number")
  if Request.form("firstname")="" then
  set rs=Server.CreateObject("ADODB.Recordset")

    rs.open "SELECT * FROM users WHERE no=" & cid ,conn

    If rs.EOF Then

       Response.Write "There is no data for this user in the database"

    Else

    %>
  <form method="post" action="change.asp">
  <table>

    <%for each x in rs.Fields%>
     <tr>
       <td><%=x.name%></td>
       <td><input name='<%=x.name%>' value='<%=x.value%>'></td>
     </tr>          
    <%next%>        

  </table>
      <br /><br />
    <input type="submit" value="Update record">
    </form>
  <%

  End If

  rs.Close
  Set rs = Nothing

  else
      sql="UPDATE users SET "
      sql=sql & "firstname='" & Request.Form("firstname") & "',"
      sql=sql & "lastname='" & Request.Form("lastname") & "',"
      sql=sql & "Gender='" & Request.Form("Gender") & "'"
    sql=sql & " WHERE no=" & cid
    on error resume next
    conn.Execute sql
    if err<>0 then
      response.write("No update permissions!")
    else
      response.write("Record " & cid & " was updated!")
    end if
  end if
  conn.close
  %>


  </td>
  <td><!--#include file="sideMenu.html"-->
  </td>
  </tr>
  </table>
  </body>
于 2012-07-03T02:01:38.080 に答える
0

許可の問題?IIsにデータベーステーブルを読み取る権限があるかどうかを確認します。また、この行で

if Request.form("firstname")="" then

普段使っています

if Request.form("firstname") & ""="" then
于 2012-07-07T22:14:43.403 に答える