begin process at 2012 02 13 06:44:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

condition sur un procédure avec paramétre output


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

condition sur un procédure avec paramétre output

dimanche 22 mars 2009 à 16:09:42 | condition sur un procédure avec paramétre output

loveislam

salut les amis
je suis tombé dans un problème et j'espère trouver quelqu'un pour m'aider
la situation :
je construis une application asp.net et je veux travailler avec mon code
dans la partie inscription ,j'ai fait un procédure qui vérifier
si le login et le passeword sont disponible ou pas
si oui l'opération se réalise avec succès  sinon message erreur
ma proposition :
CREATE PROCEDURE inscription
(
@login nvarchar(50),
@passeword nvarchar(50),
@etat int OUTPUT
)
AS
if exists(select * from utilisateur where @login=login and     @passeword=passeword) then
@etat=1
else
insert into utilisateur values @login,@passeword,@email,@question,@reponse,"utilisateur"
@etat=0
end if
problème:
c'est un problème de syntaxe mais j'arrive pas à le trouver



lundi 23 mars 2009 à 08:24:00 | Re : condition sur un procédure avec paramétre output

Hypen

Salut,
Plusieurs anomalies sont a notées :
    - select * from utilisateur where login=@login and  passeword=@passeword;
    - L'initialisation des variables doit se faire avec leSET @etat=1
    - Les variables @email,@question,@response ne sont pas déclarés.

lundi 23 mars 2009 à 08:48:43 | Re : condition sur un procédure avec paramétre output

titeoe

Bonjour , essais ceci :

CREATE PROCEDURE inscription

@login nvarchar(50),
@passeword nvarchar(50),
@etat int OUTPUT

AS BEGIN
if exists(select * from utilisateur where @login=login and     @passeword=passeword) then
@etat=1
else
insert into utilisateur values ( @login,@passeword,@email,@question,@reponse,"utilisateur" );
@etat=0
end if
END
lundi 23 mars 2009 à 10:36:58 | Re : condition sur un procédure avec paramétre output

loveislam

Merci mes amis pour vos réponses

Répondre à  hypen :

Première remarque :j'ai déjà déclarer les paramètres dans mon procédure et j'ai oublier de citer dans l'exemple

Deuxième remarque : je l'ai fait mais rien à changer

Répondre à titeoe :j'ai tester votre proposition mais ça marche pas

Et voila

CREATE PROCEDURE inscription

(

@login nvarchar(50),

@passeword nvarchar(50),

@email nvarchar(50),

@question nvarchar(50),

@reponse nvarchar(50),

@etat int OUTPUT

)

AS

if exists (select * from utilisateur where @login=login and     @passeword=passeword)

set @etat=1

else

insert into utilisateur values ( @login,@passeword,@email,@question,@reponse,"utilisateur" )

set @etat=0

end if
return @etat

ça d'une part ,d'autre part j'ai essayer avec une autre methode sans output

mais je sais pas pourquoi un message d'erreur m'affiche(la fonction ou le procédure (ajout) attend le parametre (@login) qui n'était pas fourni

mon code :

       If con.State = ConnectionState.Closed Then

                con.Open()

                com1 = New SqlCommand

                com2 = New SqlCommand

                com1.Connection = con

                com2.Connection = con

                com1.CommandText = "verifier"

                com1.CommandType = CommandType.StoredProcedure

                com1.Parameters.AddWithValue("@login", TextBox1.Text)

                com1.Parameters.AddWithValue("@passeword", TextBox2.Text)

                i = com1.ExecuteScalar

                If i <= 0 Then

                    com2.CommandText = "ajout"

                    com1.CommandType = CommandType.StoredProcedure

                    com2.Parameters.AddWithValue("@login", TextBox1.Text)

                    com2.Parameters.AddWithValue("@passeword", TextBox2.Text)

                    com2.Parameters.AddWithValue("@email", TextBox4.Text)

                    com2.Parameters.AddWithValue("@question", DropDownList1.SelectedValue)

                    com2.Parameters.AddWithValue("@reponse", TextBox5.Text)

                    com2.Parameters.AddWithValue("@role", var)

                    com2.ExecuteNonQuery()

                    com2.Parameters.Clear()

                    com1.Parameters.Clear()

                    Response.Redirect("liste de produit.aspx")

                Else

                    Response.Write("ce compte à été utilisé par un autre membre")

 

                End If

                con.Close()

            End If

Explication :

Le procédure verifier calcul le count

Le procédure ajout fait un simple insertion

Remarque

J'ai testé avec le syntaxe suivant mais ça marche pas

Dim par1 AsNew SqlClient.SqlParameter

                    With par1

                        .Direction = ParameterDirection.Input

                        .ParameterName = "@login"

                        .Size = 50

                        .Value = TextBox1.Text

                    End With

Aideeeeeeeeeeeeeeeeeeeeeeeeeeeez moi

mardi 24 mars 2009 à 15:32:58 | Re : condition sur un procédure avec paramétre output

Hypen

Salut,

Le  " return @etat " dans ta procédure est a enlevé. Ca ma déja poser des petits problémes. La procédure renvoi automatiquement @etat comme tu l'as definit en output.

CREATE PROCEDURE inscription
(
@login nvarchar(50),
@passeword nvarchar(50),
@email nvarchar(50),
@question nvarchar(50),
@reponse nvarchar(50),
@etat int OUTPUT )

AS

Begin
   if exists
(select * from utilisateur where login=@loginand  passeword=@passeword)
      set @etat=1
   else 
       begin
            insert into utilisateur values ( @login,@passeword,@email,@question,@reponse,'utilisateur')
           set @etat=0 
      end
  end if
end


 

mardi 24 mars 2009 à 17:10:18 | Re : condition sur un procédure avec paramétre output

PascalCmoa

Membre Club
Bonjour,

je vais ajouter moi aussi ma petite touche sur cette proc' stock'

je ferai:

create procedure proc_inscription (
     @login varchar(50)
    , @password varchar(50)
    , @email varchar(255) -- Prévoir grand car 50 caractères n'est pas suffisant pour certaines adresses email.
    , @question varchar(255) -- Je prendrai un dropdownlist avec des questions prédéfinies.
    , @reponse varchar(255)
)
as
declare @etat int
if exists(select * from utilisateur where login=@login and passeword=@password)
    begin
        set @etat = 1
    end
else
    begin
        insert into utilisateur values(@login, @password, @email, @question, @reponse, 'utilisateur')
        set @etat = 0
    end
select @etat -- Le retour de ta proc' stock'

Voilà, a+

PascalCmoa
email: PascalCmoa
mercredi 25 mars 2009 à 13:55:41 | Re : condition sur un procédure avec paramétre output

loveislam

Merci mes ami pour vos réponse (hypen+pascal)

Répondre à pascal

Le code ça marche Mais au niveau de vs

  If con.State = ConnectionState.Closed Then

                con.Open()

end if

                com = New SqlCommand

                com.Connection = con       

          com.CommandText = "proc_inscription"

                    com.CommandType = CommandType.StoredProcedure

                    com.Parameters.AddWithValue("@login", TextBox1.Text)

                    com.Parameters.AddWithValue("@passeword", TextBox2.Text)

                    com.Parameters.AddWithValue("@email", TextBox4.Text)

                    com.Parameters.AddWithValue("@question", DropDownList1.SelectedValue)

                    comat_inscriptiontre reponce

.Parameters.AddWithValue("@reponse", TextBox5.Text)

                   ( faut t-il declarer le parameter @etat si oui comment parce que le parametre output ça marche pas avec moi

Dim par1 AsNew SqlClient.SqlParameter

                    With par1

                        .Direction = ParameterDirection.output

                        .ParameterName = "@etat"

                        .Size = 50

                    End With

)

                    com.ExecuteNonQuery()

                               If par1 <= 0 Then

Label.text="l'operation est reussite"

Else

Label.text=" ce compte à été utilisé par un autre membre "

mercredi 25 mars 2009 à 13:58:26 | Re : condition sur un procédure avec paramétre output

loveislam

With par1

                        .Direction = ParameterDirection.output

                        .ParameterName = "@etat"

                        .Size = 50

dim val as integer=.value                    End With

)

                    com.ExecuteNonQuery()

                               If val<= 0 Then

Label.text="l'operation est reussite"

Else

Label.text=" ce compte à été utilisé par un autre membre "

mercredi 25 mars 2009 à 15:01:25 | Re : condition sur un procédure avec paramétre output

PascalCmoa

Membre Club
Bonjour,

Nan il ne faut pas gérer @etat car c'est la valeur qui va être retournée par la requête. Il suffit de récupérer cette valeur via un datatable, un dataset par exemple.

a+

PascalCmoa
email: PascalCmoa
mercredi 25 mars 2009 à 19:54:59 | Re : condition sur un procédure avec paramétre output

loveislam

Salut pascal

Merci beaucoup pour votre réponse

Mon idée

Je voulais travailler avec votre procédure dans un formview

Ma proposition

Voice la partie insert

 

           < asp : FormView ID ="FormView1" runat ="server" AllowPaging ="True"

                BackColor ="Black" CssClass ="style10" DataKeyNames ="num_fr"

                DataSourceID ="SqlDataSource1" ForeColor ="White">

 

    < InsertItemTemplate >

    num_fr:    <asp:TextBoxID="num_frTextBox"runat="server"

' <% # Bind("num_fr") %>'/>

 

    nom_f <asp:TextBoxID="nom_frTextBox"runat="server"

" Text =' <% # Bind("nom_fr") %>'/>

 

 prenom_fr  <asp:TextBoxID="prenom_frTextBox"runat="server

" Text =' <%# Bind("prenom_fr") %>'/>

                    < br />

                   

   < asp : LinkButton ID ="InsertButton" runat ="server" CausesValidation ="True"

    CommandName ="Insert" ForeColor ="#99FF33" Text ="Insérer" />

 

  < asp : LinkButton ID ="InsertCancelButton" runat ="server"

  CausesValidation ="False" CommandName ="Cancel"                       Text ="Annuler" />

                </ InsertItemTemplate >

            </ asp : FormView >

  < asp : SqlDataSource ID ="SqlDataSource1" runat ="server"

                ConflictDetection ="CompareAllValues"

                ConnectionString =" <%$ ConnectionStrings:ConnectionString %>"

                InsertCommand ="proc_fournisseur"

           

                InsertCommandType ="StoredProcedure">

   < InsertParameters >

                    < asp : Parameter Name ="num_fr" Type ="String" />

                    < asp : Parameter Name ="nom_fr" Type ="String" />

                    < asp : Parameter Name ="prenom_fr" Type ="String" />

                </ InsertParameters >

            Et j'ai taper le code suivant

    Protected Sub FormView1_ItemInserting(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.FormViewInsertEventArgs) Handles FormView1.ItemInserting

 

        If IsPostBack = TrueThen

            Dim i AsInteger = SqlDataSource1.Insert 'cette methode verifier si un ligne à été affecté ou pas'

            If i = 0 Then

Label.text"inserer un autre , ce code existe deja"

message.Visible = true

            Else

                message.Visible = False

 

            End If

        End If

 

 

    End Sub

Message erreur

Impossible d'insérer la valeur NULL dans la colonne 'num_fr'

Cette colonne n'accepte pas les valeurs NULL. Échec de INSERT.
L'instruction a été arrêtée.

C'est comme rien passer avez vous une idée car cette solution me servira beaucoup et merci


1 2

Cette discussion est classée dans : problème, login, output, procédure, passeword


Répondre à ce message

Sujets en rapport avec ce message

Problème avec la variable session [ par nissou770 ] Bonsoir,j'ai un petit problème.Voila, j'ai recuperé de mon url un parametre (le login) et je l'ai mis dans une session ("login") jusque la tout est bo Problème ASP avec plusieurs actions dans ma procédure stockée... [ par Hesky ] Bonjour, J'ai un petit problème lorsque je met plusieurs actions (select, insert, update) dans une procédure stockée...Lorsque je veux récupèrer les v Problème mssql : procédure stoquées [ par Focalizer ] Bonjour,J'utilise un forum téléchargé qui utilise des procédures stoquées (sous mssql).J'aimerais bien utiliser ces procédure mais je ne comprend pas [ASPX]Problème avec les images dans la page de login.aspx [ par Jeankiki ] Bonjour à tous,J'ai un fichier Web.Config dans le dossier "/" du site et quand je démarre la page login.aspx je vois sur la page web dans la barre d'é Problème de login avec IE [ par HybridKat ] Bonjour,Ça fait un bout que je me pète la tête la-dessus mais je trouve pas.  Je m'explique :J'ai un site en asp avec un login en AJAX.  Ça marche sup problème d'appel d'une procédure de mon usercontrol [ par Kyoto ] Hello tout le monde!J'aimerai appeler une procedure de mon usercontrol, donc pour celà je fais comme ça :<PAR Problème de target et de login [ par samoht ] Bonjour,1. Comment définir une nouvelle page avec window.href="..." pour se retrouver avec 2 pages d'ouvertes (target=_blank ??? je sais pas)2. Après Problème avec récupération du login NT [ par kirikou88 ] Bonjour,J'aimerais pouvoir récupérer le login de l'utilisateur connecté sur ma page ASP.J'ai déjà essayé trois possibilités mais ca ne marche pas du t problème urgent session [ par loubna2517 ] Salut Je suis débutante en ASP et j'ai un grand problème de sécurité concernant la gestion des sessions J'ai une page HTM contenant le Login et le mot Procédure stockée + contrôle login [ par hugo7 ] Bonjour j'ai un contrôle login dans une page et la base de donnée : ASPNETDB.MDF et je voudrais savoir quelle est la procédure stockée qu'utilise le c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,268 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales