IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Update de la ligne X


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Update de la ligne X
    Bonjour j'aurai aimé savoir si il était possible de faire un requete update a partir d'un numéro de ligne. J'ai un bout de code pour le début de ma requete mais des que j'arrive au "where" je voit pas trop comment faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <% 'récupération de la valeur du bouton :
    dim ligne : ligne= Request("ligne") %>
     
    <body>
    modification de la ligne n°<%=+ligne%><br><br>
    il y a <%= request.form.count-1 %> champs <br>
    	<% For each item in request.form 
    		if item <> "BoutonValiderFormulaireModif" then %>
    			<%=item%> à pour valeur : <%=request.form(item)%><br>
    		<% end if %>
    	<%next%>
     
    <%'création de lobjet de connection 
    	set objConn = server.CreateObject("ADODB.Connection")
    	base = "DRIVER={SQL Server};" & "SERVER=;UID=sa; pwd=; DATABASE=QUALIPSO"
    	objConn.Open base
    	Req1 = "UPDATE testtable SET " 
    	For each item in request.form 
    		if item <> "BoutonValiderFormulaireModif" then
    		Req2 = Req2 & item &" = "& request.form(item)&", "
    		end if
    	next
    	Req = Req1 & Req2
    	response.write "<br>"&Req
    	set rs = server.CreateObject("ADODB.RecordSet")	
    	on error resume next 
    	rs.Open Reqp,objConn 
    	rs.close 
    	set rs = Nothing 
     
    	if err then 
    	    response.write err.description 
    	end if 
     
    	on error goto 0 
    %>
    </body>
    d'avance merci

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Normalement chacune de tes lignes devrait etre identifiée par un numéro "Auto", un identifiant. Ensuite, tu fais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connexion.execute "UPDATE matable SET () VALUES () WHERE monid = " & ID
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Je sais bien que chaque table est repérérer par un identifiant, seulement chaque table n'a pas le meme nom d'identifiant et il n'est pas au meme endroit. En fait l'utilisateur choisi d'abord sa table

    TABLE 1
    ID NOM Prenom
    1 abv abvprenom
    2 cdf cdfprenom
    3 gft oznnbsq

    TABLE 2
    Num NOM Prenom
    a1 abvsd ab2vprenom
    b2 cdfq cd2fprenom
    c3 gftrz o2znnbsq

    ensuite quant l'utilisateur clique sur la deuxieme ligne, les donnée de cette ligne apparaissent dans un formulaire. Et une fois que l'on a changé ces donné et que l'on valide il faut mettre a jour seulement la ligne modifier. Le problème c'est que l'identifiant change entre les table donc je ne peut pas le fixer dans la requete

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    Salut,
    Tu crées un chaine pour ta requete et pour les noms des champs tu les mets en fonction de la table sélectionnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RSQL="update "  & Request.Form("TableSelect")
    If Request.Form("TableSelect")="Table1" Then
       RSQL=RSQL & "..."
    Else
       RSQL=RSQL & "..."
    End If

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Le problème c'est que si on rajoute une table il faut aussi remodifier le code pour rajouter une autre possibilité

    voici mon code actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Req1 = "UPDATE ('"&table&"') SET " 
    	on error resume next
    	max= request.form.count-1
    	j=0
    	for each item in request.form 
    		if j = max then
    		Req2 = Req2 & item &" = '"&request.form(item)&"' "
    		else
    		Req2 = Req2 & item &" = '"&request.form(item)&"', "
    		response.write j & max
    		end if
    		j=j+1
    	next
    		response.write "<br>"&req2&"<br>"
    	Req3 = "where EmployeeID='1'"
    	Req = Req1 & Req2 & Req3
    le problème se trouve au niveau du WHERE
    Il faudrait trouver un truc du genre "where 'cléprimaire'='valeurAvantModif'

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    Oui mais le problème existera toujours si pour la nouvelle table le nom du champ est différent.
    Regarde au niveau des requetes système. Tu peux récupérer la liste de tes tables mais surement aussi la liste de tes champs pour une table donnée

Discussions similaires

  1. Update sur plusieurs lignes
    Par JOUCHET dans le forum Oracle
    Réponses: 1
    Dernier message: 20/05/2006, 18h37
  2. [8i] Update sur une ligne invalide
    Par Apsolu dans le forum Oracle
    Réponses: 3
    Dernier message: 09/01/2006, 21h06
  3. Trigger inserant une ligne auto en cas d'UPDATE de 0 lign
    Par bbshadoks dans le forum Développement
    Réponses: 4
    Dernier message: 04/05/2005, 13h00
  4. [C#] DataGrid : Update d'une ligne
    Par Joad dans le forum ASP.NET
    Réponses: 12
    Dernier message: 29/04/2005, 12h14
  5. UPdate / Nb de lignes modifiées
    Par Thomad dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/09/2003, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo