Procedure stockée pour supprimer une valeur

Résolu
cs_atino Messages postés 37 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 14 septembre 2009 - 10 juin 2009 à 21:17
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 - 12 juin 2009 à 23:06
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 36
11 juin 2009 à 19:03
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;
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 36
10 juin 2009 à 22:09
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
0
cs_atino Messages postés 37 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 14 septembre 2009
11 juin 2009 à 00:17
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
0
cs_atino Messages postés 37 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 14 septembre 2009
12 juin 2009 à 00:58
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 36
12 juin 2009 à 23:06
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
0