Avatar billede oversjanten Nybegynder
09. marts 2003 - 23:11 Der er 4 kommentarer og
2 løsninger

Opdatere en flere RS via asp ?

Der er noget galt....
Jeg er nok ingen haj til hverken asp eller SQL, men det må kunne lade sig gøre at opdatere flere records i den samme tabel, ad 1 gang...
jeg har forsøgt, men detvirker åbenbart ikke.

Min database er en MYSQL, og tabelen indeholder 3 felter:

AID (auto id), aktivitet, pris. min kode er som herunder:

<body class="text">
<p><center><h3></h3></center></p>
<%
if request.QueryString("step") = ""  or request.QueryString("step") = 1 then
%>
<form action="?step=2" method="post">
<input type="submit" class="submit" name="Opdater" value="Opdater">
<table class="tabel">
<tr>
  <th>
  Aktivitet
  </th>
  <td>&nbsp;</td>
  <th>Pris</th>
</tr>

<%
Set conn = Server.CreateObject("ADODB.Connection")
        strConnect = "DRIVER={MySql}; SERVER=localhost; DATABASE=****; UID=****; PWD=****"
        conn.Open strConnect
strSQL= "SELECT * from aktivitet ORDER BY aktivitet"
set RS=Conn.Execute(strSQl)

dim tal, tal2
do until RS.EOF
tal2=tal2+1  ' Tæller til aktivitet
tal=tal+1  ' tæller til pris
%>
  <tr>
    <td>
   
    <input name="id<% Response.Write RS("AID") %>" type="text" id="id" value="<% Response.Write RS("AID") %>" size="3" maxlength="1">
    </td>
      <td>
    <% response.write RS.fields("aktivitet")%>">
    <td>
      </td>
      <td>
      <input type="text" name="Priser" size="6" value="<% response.write RS.fields("pris")%>">

      </td>
    </td>
    <td>&nbsp;</td>
    <td></td>
  </tr>
  </form>

  <%    
  RS.movenext
  loop

end if

if request.QueryString("step") = 2 then
'--------------------  Skriver pris -------------------------------------   
Set conn = Server.CreateObject("ADODB.Connection")
strConnect = "DRIVER={MySql}; SERVER=localhost; DATABASE=****; UID=****; PWD=****"
conn.Open strConnect

For Each elem In Request.Form("id")
    valu = Request.Form("Priser" & elem)
    strSQL = "UPDATE <tabel> SET pris='"& valu & "' WHERE produkt_id='" & elem & "'"
    conn.Execute(strSQL)
next

conn.close
set conn=nothing

end if

%>

</table>
</body>
Avatar billede hossein Nybegynder
09. marts 2003 - 23:31 #1
Hvis du sender flere ID værdier så skal du splite dem først også bagefter lave et array hvor du kan updatere din tabel en efter en, Er det sådan som du tænker?
Avatar billede eagleeye Praktikant
09. marts 2003 - 23:35 #2
Du hendter prisen her:

valu = Request.Form("Priser" & elem)


Så hvis du tilføjer ID til navet i formen så skulle det viste virker.

<input type="text" name="Priser<%=RS("AID")%>" size="6" value="<% response.write RS.fields("pris")%>">



så skal du lave denne om så den kun hedder ID og ikke med nummeret:
<input name="id<% Response.Write RS("AID") %>" type="text" id="id" value="<% Response.Write RS("AID") %>" size="3" maxlength="1">

Sådan her:
<input name="id" type="text" id="id" value="<% Response.Write RS("AID") %>" size="3" maxlength="1">
Avatar billede hossein Nybegynder
09. marts 2003 - 23:44 #3
Hvis det er flere værdier så er det den?:
ID= request.form("ID")
arrID = split(ID)
for i = 0 to ubound(arrID)
valu = Request.Form("Priser" & elem)
    strSQL = "UPDATE <tabel> SET pris='"& valu(i) & "' WHERE produkt_id='" & elem(i) & "'"
    conn.Execute(strSQL)
next
Avatar billede eagleeye Praktikant
09. marts 2003 - 23:49 #4
Denne:

For Each elem In Request.Form("id")


Gør det samme som:
arrID = split(ID)
for i = 0 to ubound(arrID)
Avatar billede hossein Nybegynder
10. marts 2003 - 00:35 #5
kig her, så kan det måske hjælpe, hvis du vil opdatere mere end en record ad gangen:
http://www.intranetjournal.com/articles/200002/wd_02_25_00dd.html
Avatar billede oversjanten Nybegynder
12. marts 2003 - 08:05 #6
Thx for hjælpen, grunden til hossein har fået flere points, er

http://www.intranetjournal.com/articles/200002/wd_02_25_00dd.html

som gav mig det sidste....

Sorry, men min maskine har været nede, derfor den sene besvarelse
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester