Procedure stockée pour supprimer une valeur [Résolu]

Signaler
Messages postés
37
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
14 septembre 2009
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
bonjour,

je voudrai creer une procedure stockee qui est appelé lorsque j'appuie sur un bouton sur une page aspx

la procédure que j'ai cree ne fonctionne pas ( DELETE
FROM MATERIELS
WHERE MATERIEL
[mailto:='@MATERIEL' =]'@MATERIEL') je pense que c'est la condition @MATERIEL qui pose le probleme (il n'y a pas de materiel qui a comme nom @MATERIEL)

le @MATERIEL est une variable qui vient d'une dropdownlist

quand je clique sur le bouton supprimer apres avoir choisi le materiel dans la DDL ,je voudrai que par la procedure stockée supprime le materiel choisi

merci pour votre aide

5 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Ok,

Ta procedure stockée sera de la forme

CREATE PROCEDURE [dbo].[SP_D_Materiel]
(
@MATERIEL varachar(20)

)
AS
DELETE FROM materiel
WHERE materiel= @MATERIEL


Apres pour l'appel

Cmd.commandname = 'SP_D_Materiel';
cmd["@MATERIEL"] = dropdowlist1.value;
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Salut

DELETE FROM MATERIELS WHERE MATERIEL = @MATERIEL

Pas besoin de '' c'est le moteur de la base de données qui les ajoute.

Essai avec
le code
DECLARE @MATERIEL varchar(255)
SET @MATERIEL = 'mat1'
DELETE FROM MATERIELS WHERE MATERIEL = @MATERIEL

Et tu verras dans sql management server
1 lignes affectuée
Messages postés
37
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
14 septembre 2009

Merci pour ta reponse nhervagault ,mais je ne comprends pas la ligne SET @MATERIEL ='mat1'

sert-elle à supprimer le materiel nommé mat1 de la colonne materiel ?

car je souhaiterai que @MATERIEL soit une variable issue de ma DropDownList
Messages postés
37
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
14 septembre 2009

merci ca marche nickel ,cependant pour appeler la procedure ,j'ai fait comme ca




OleDbConnection




cnx =


new





OleDbConnection

(


"Provider=SQLOLEDB; server=blablabla......

);



try

{ cnx.Open(); }



catch

(


Exception

ex){

LblErreur.Text =



"Echec de connexion"

;



return

;}



OleDbCommand

com;com =



new





OleDbCommand

();com.Connection = cnx;

com.CommandType =



CommandType

.StoredProcedure;com.CommandText =



"suppression_materiel"

;

mais bon je ne sais pas si c'est bien propre de faire comme ca

en tout cas merci pour ton aide precieuse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Essai de mettre ta chaine connexion dabs le fichier app.config
pour pouvoir changer de base sans recompiler le programme

Mets un try catch autour de la commande delete et apres aujoute une transaction
pour si il y a erreur ta base soit dans un etat coherent