Problème entre SQL et VB.Net
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:
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:
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 |