05. november 2003 - 10:35Der er
18 kommentarer og 2 løsninger
Fejl i opdater database
# Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E21) Der opstod en eller flere fejl ved en OLE DB-handling på flere trin. Kontroller alle OLE DB-statusværdier. Handlingen blev ikke udført. /test/lanparty_2004/tilmelding/update_entry.asp, line 37
# Side: POST 120 bytes to /test/lanparty_2004/tilmelding/update_entry.asp
# POST Data: navn=Kristian+Car%F8e&alias=%5BDZ%5D.headOn.&by=Kors%F8r&email=kristian%40darkzone.dk&ID_no=67&Submit=Opdater+tilmelding
Min update_entry ser således ud : <% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsUpdateEntry 'Holds the recordset for the record to be updated Dim strSQL 'Holds the SQL query for the database Dim lngRecordNo 'Holds the record number to be updated
'Read in the record number to be updated lngRecordNo = CLng(Request.Form("ID_no"))
'Create an ADO connection odject Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/krcDB.mdb")
'Create an ADO recordset object Set rsUpdateEntry = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo
'Set the cursor type we are using so we can navigate through the recordset rsUpdateEntry.CursorType = 2
'Set the lock type so that the record is locked by ADO when it is updated rsUpdateEntry.LockType = 3
'Open the tblComments table using the SQL query held in the strSQL varaiable rsUpdateEntry.Open strSQL, adoCon
'Update the record in the recordset rsUpdateEntry.Fields("navn") = Request.Form("navn") rsUpdateEntry.Fields("alias") = Request.Form("alias") rsUpdateEntry.Fields("by") = Request.Form("by") rsUpdateEntry.Fields("email") = Request.Form("email") rsUpdateEntry.Fields("betalt") = Request.Form("betalt")
'Write the updated recordset to the database rsUpdateEntry.Update
'Reset server objects rsUpdateEntry.Close Set rsUpdateEntry = Nothing Set adoCon = Nothing
'Redirect to the guestbook.asp page Response.Redirect "view_db.asp"
%>
Og det er den her stump kode i min update_form.asp der driller :
<% if rsGuestbook("betalt") then response.write("<input type='checkbox' name='betalt' checked >") else response.write("<input type='checkbox' name='betalt' >") end if %>
</td>
</tr> </table>
</center> </div>
Jeg vil bare kunne ændre min checkbox og så gemme det.
Accessdatabasen har et felt der hedder betalt som er et sand/falsk med værdi som afkrydsningsbox. Hvad er der galt ?
strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo skal være strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo & " "
prøv med:
if rs("betalt")= true then %> <INPUT type="checkbox" id=checkbox1 name='betalt' checked> <% else %> <INPUT type="checkbox" id=checkbox1 name='betalt' > <%end if %>
det er fordi den skal afsluttes korrekt. du starter sql sætningen med et " og den skal afsluttes med et ". du beder om at få ID_no=" & lngRecordNo & " her skal den også afsluttes. du bruger denne "&variabel&" notation til at marke hvilken en værdi der skal bruges til at hente data i databasen med. hvis det var f.eks. et navn så skal man bruge: '"&Strnavn&"'
Nu har jeg skiftet det ud i update_entry med den linie nævnt ovenfor. Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA) Der er en syntaksfejl /test/lanparty_2004/tilmelding/update_entry.asp, line 38, column 33 rsUpdateEntry.Fields("betalt") = on
næsten fantastisk...... Nu virker det halvt :o) Hvis nu alle felter i databasen er sande så kan jeg fjerne den ved at fjerne afkrydsningen og trykke opdater...så bliver de rigtigt nok falske i databasen, MEN hvis jeg så siger jamen nu skal den være sand igen og sætter afkrydsningen og trykker opdater...så sker der intet...ingen fejl men heller ingen opdatering ???
a-torsten... sig til hvis du vil have point..så opretter jeg er spgm til dig
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.