webForumDet fria alternativet

felmedelande i ASP

ASP

6 svar · 290 visningar · startad av seigan

Medlem sedan juli 20028 inlägg
Frågan#1

Hej alla!!
Jag har ett jätte problem.... jag ska uppdatera ett medlemsdatabas och den vägrar. en check box blir falsk hela tiden och jag får fel medelanden stup i kvarten.

jag har skrivit ut sql strängen som bråkar och den ser ut så här:
sqlup2 = "UPDATE medlemar SET gmedlemskap= '"& request.form("gmedlemskap") &"', mailinglista = '"& request.form("mailinglista") &"' WHERE id="& request.form("medlemsid")&""

och utskriven blir det:
UPDATE medlemar SET gmedlemskap= 'True', mailinglista = 'False' WHERE id=2

gmedlemskap och mailinglista är två checkboxar som båda är förkryssade... men som ni ser blir mailinglista "false". Värdena i databasen är för definerade till falska om inget annat anges...

Jag fattar ingenting!!
Jag är jätte tacksam för all hälp jag kan få!!

Tack på för hand!!
//Seigan

här kommer hela koden:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body { background-attachment: fixed; background-color: #000000; background-image: url(http://hem.fyristorg.com/seigan/nyafyk/bilder/main_bg.jpg); background-repeat: no-repeat}
-->
</style>
<link rel="stylesheet" href="http://hem.fyristorg.com/seigan/nyafyk/fyk.css" type="text/css">
</head>

<body bgcolor="#000000" text="#000000" background="http://hem.fyristorg.com/seigan/nyafyk/bilder/main_bg.jpg">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="96%">
<tr>
<td height="11" width="12"> </td>
<td height="11" width="402" class="text" valign="top">

\<p class="text"\>

<br>
<%

if session("user") = "" then
response.write "</body></html>"
response.redirect("../main_medlemslogin.asp")
end if

function clearText (strText)
strTemp = replace(strText, "'", "''")
strTemp = replace(strTemp, """", """)
clearText = strTemp
end function

Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../db/fyk.mdb")
nisse=0
val = request.querystring("val")

sql = "SELECT * FROM medlemar"
set rs=databas.execute (sql)

%>
<form action="medlemmar.asp?nisse=1" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="text" width="50">Medlemar:</td>
<td>
<select name="medlem" class="form">

<% do while rs.eof <> true %>
<option value="<%=rs("id")%>"><%=rs("Förnamn")%> <%=rs("Efternamn")%></option>
<%
rs.movenext
loop

%>

\</td\>
\</tr\>
\<tr\>
    \<td width="50"\> \</td\>
    \<td\>\<input type="submit" name="valj" value="Välj" class="knapp"\>\</td\>
\</tr\>

</select>

</form>
</table>
<br>
<%

nisse=request.querystring("nisse")

if nisse=1 then
medlemsid=request.form("medlem")
response.write(medlemsid)

sql2 = "SELECT * FROM medlemar WHERE id="& request.form("medlem")&""
set rs2=databas.execute (sql2)
'response.write(sql2)

do while rs2.eof <> true
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action="medlemmar.asp?update=1" method="post">

\<tr\>
    \<td class="text" width="50"\>Födelsedata: \<input type="hidden" name="medlemsid" value="\<%=rs2.fields("id")%\>"\>\</td\>
    \<td\>\<input type="text" name="Födelsedata" value="\<%=rs2.fields("Födelsedata")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
   \<td class="text" width="50"\>Förnamn:\</td\>
    \<td class="text"\>\<input type="text" name="Förnamn" value="\<%=rs2.fields("Förnamn")%\>" class="form"\>\</td\>
\</tr\>
\<tr\>
   \<td class="text" width="50"\>Efternamn: \<input type="hidden" name="val" value="\<%=val%\>"\>\</td\>
    \<td class="text"\>\<input type="text" name="Efternamn" value="\<%=rs2.fields("Efternamn")%\>" class="form"\>\</td\>
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Adress: \</td\>
    \<td\>\<input type="text" name="Adress" value="\<%=rs2.fields("Adress")%\>" class="form"\>\</td\> 
\</tr\>

\<tr\>
    \<td class="text" width="50"\>Postadress: \</td\>
    \<td\>\<input type="text" name="Postadress" value="\<%=rs2.fields("Postadress")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Tele: \</td\>
    \<td\>\<input type="text" name="Telenummer" value="\<%=rs2.fields("Telenummer")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Mobtele: \</td\>
    \<td\>\<input type="text" name="Mobiltelenr" value="\<%=rs2.fields("Mobiltelenr")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>E-mail: \</td\>
    \<td\>\<input type="text" name="email" value="\<%=rs2.fields("email")%\>" class="form"\>\</td\> 
\</tr\>

\<tr\>
    \<td class="text" width="50"\>Bujinkangrad: \</td\>
    \<td\>\<input type="text" name="bujinkangrad" value="\<%=rs2.fields("bujinkangrad")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Goshingrad: \</td\>
    \<td\>\<input type="text" name="goshingrad" value="\<%=rs2.fields("goshingrad")%\>" class="form"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Godkänt medlemskap: \</td\>
    \<td\>\<input type="checkbox" name="gmedlemskap" value="\<%=rs2.fields("gmedlemskap")%\>"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Med i mailinglistan: \</td\>
    \<td\>\<input type="checkbox" name="mailinglista" value="\<%=rs2.fields("mailinglista")%\>"\>\</td\> 
\</tr\>
\<tr\>
    \<td class="text" width="50"\>Eventuell kommentar: \</td\>
    \<td\>\<textarea cols="60" rows="4" name="kommentar" class="form"\>\<%=rs2.fields("kommentar")%\>\</textarea\>\</td\>
\</tr\>
\<tr\>
    \<td width="50"\> \</td\>
    \<td\>\<input type="submit" name="update" value="Update" class="knapp"\>\</td\>
\</tr\>

</form>
</table>

<%
rs2.movenext
loop
end if

             update=request.querystring("update") 
             if update=1 then
                         
              if request.form("update")="Update" then   
              'sqlup2 = "UPDATE medlemar SET Förnamn = '"& clearText(request.form("Förnamn")) &"', Efternamn = '"& clearText(request.form("Efternamn")) &"', Adress = '"& clearText(request.form("Adress")) &"', Postadress = '"& clearText(request.form("Postadress")) &"', Telenummer = '"& clearText(request.form("Telenummer")) &"', Mobiltelnr = '"& clearText(request.form("Mobiltelenr")) &"', email = '"& clearText(request.form("email")) &"', bujinkangrad = '"& clearText(request.form("bujinkangrad")) &"', goshingrad = '"& clearText(request.form("goshingrad")) &"', gmedlemskap= '"& request.form("gmedlemskap") &"', mailinglista = '"& request.form("mailinglista") &"', kommentar = '"& clearText(request.form("kommentar")) &"' WHERE id="& request.form("medlemsid")&""                   

sqlup2 = "UPDATE medlemar SET gmedlemskap= '"& request.form("gmedlemskap") &"', mailinglista = '"& request.form("mailinglista") &"' WHERE id="& request.form("medlemsid")&""
response.write(sqlup2)
databas.execute(sqlup2)
end if

              if request.form("delete")="Delete" then
              sql_delete = "DELETE \* FROM nummerinfo WHERE id=" & update &""
              databas.execute (sql_delete)
              end if

              addpost=request.querystring("addpost")
              if addpost = 1 then
              sqlin = "INSERT INTO nummerinfo (vad, info) VALUES ('" & request.form("vad") &"', '" & request.form("info") & "')"
              response.write(sqlin)
              databas.execute (sqlin)
              end if
            
            'response.redirect("medlemmar.asp")
            end if

%>

<br>
</p>
</td>
<td height="11" width="12"> </td>
</tr>
</table>
</body>
</html>

Medlem sedan juli 20028 inlägg
#2

oj jag glömde felmedelandet :)

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/seigan/fyk/admin/medlemmar.asp, line 161

rad 161 är executen av update satsen.... Vilken fin svengelska det där vart ;)
//Seigan

Medlem sedan dec. 19996 522 inlägg
#3

Du har fnutt fel i din uppdateringsfråga.

Tabort ' fnuttarna vid dina request.form

Medlem sedan juli 20028 inlägg
#4

har försökt men det hjälper inte mycket... samma fel

UPDATE medlemar SET gmedlemskap= True, mailinglista = False WHERE id=2

Fast jag kryssat i båda rutorna så är en ruta false... fortfarande...

Den vill inte heller känna av check boxarna när den läser in databasen.... :(

Medlem sedan dec. 200012 464 inlägg
#5

I dina checkboxar så sätter du value till det som står i databasen. Det innebär att om värdet var false i databasen så kommer request.form("checkbox") att innehålla "false" om checkboxen är ikrysssad.

När du skriver ut html så får du göra så här istället:

<td><input type="checkbox" name="gmedlemskap" 
<% if cbool(rs2.fields("gmedlemsskap")) then
   response.write " checked "
end if %>
></td>

och sedan i din update

sqlup2 = "UPDATE medlemar SET gmedlemskap= " &_
len(request.form("gmedlemskap")) & _
", mailinglista = " &_
len(request.form("mailinglista")) &_
" WHERE id="& request.form("medlemsid")

Vilken datatyp har kolumnen id?

Medlem sedan juli 20028 inlägg
#6

den tycker inte om If satsen..... det står:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

medlemmar.asp, line 132

VAd är det för fel.... jag känner mej helt borta nu.... :)

Medlem sedan mars 20015 287 inlägg
#7

gmedlemsskap

ska kanske stå gmedlemskap

296 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
165 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)