Bonjour,

je suis entrain de faire un petit site internet sur lequel il est possible d'enregistrer des informations.

Ces données sont stockées dans une base SQL.

Le fonctionnement:

j'envoi une requête avec des paramètres, la procédure vérifie que l'info ne se trouve pas déjà dans la table:
-elle renvoie -1 si l'info s'y trouve déjà
-elle renvoi le nombre de ligne ajoutée (soit 1) si l'info ne s'y trouvait pas.


Je teste ma requête avec SQL server management studio express,ça fonctionne impeccable.

Lorsque j'essai avec le site, je reçoit à chaque fois -1, mais l'info est quand même ajoutée dans la base de donnée, même si elle ne s'y trouvait pas encore.

Procédure:
Code sql : 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
ALTER PROCEDURE [dbo].[ajout_info]
	@Nom nvarchar(50),
	@Passe nvarchar(max),
AS
BEGIN
 
	SET NOCOUNT ON;
	IF (SELECT count(ID) FROM Filles WHERE (Nom_lower=LOWER(@Nom))) > 0
	BEGIN
		return -1
	END
	ELSE
		BEGIN
		DECLARE @ID as uniqueidentifier
		set @ID = NEWID()
		INSERT INTO Infos (ID,Nom,Nom_lower,Passe) values (@ID,@Nom,LOWER(@NOM),@Passe)
		return
		END
END

Dans vb.net:
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
    Public Function commandenonquery(ByVal proc As String, Optional ByVal params As ArrayList = Nothing) As Int16
        Dim macommand As New SqlClient.SqlCommand(proc)
        macommand.CommandType = CommandType.StoredProcedure
        If Not ConnectionProc(macommand) Then 'test de l'ouverture de la connexion à la BDD
            Return -1
            Exit Function
        End If
 
        If (Not params Is Nothing) Then
            For Each parameter As SqlClient.SqlParameter In params
                macommand.Parameters.Add(parameter)
            Next
        End If
 
        Try
            Dim i As Int16 = macommand.ExecuteNonQuery()
            Return i
        Catch ex As Exception
            Return 666
        End Try
        macommand.Connection.Close()
 
    End Function