Bonjour,

Je veux insérer une ligne avec les paramètres en entrées et un paramètre qui sera la clé au retour.

Donc voici ma proc en SQL Server 2005
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
 
BEGIN 
    SET NOCOUNT ON 
    INSERT INTO TESTSCOPE 
    ( 
        NOM,
        PRENOM 
    ) 
    VALUES 
    ( 
        @param1,
        @param2
    ) 
    SELECT NEWID = SCOPE_IDENTITY() 
END
Voici mon code 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
24
25
26
27
28
29
30
31
 
Dim connectString As String = "Data Source=XXX;Initial Catalog=MaBd;User ID=MonUser;Password=MyPWD"
 
Dim connection As SqlConnection = New SqlConnection(connectString)
        Try
 
            connection.Open()
            Dim cmd As SqlCommand = New SqlCommand()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "ProcidTest"
            With cmd.Parameters
                .Add(New SqlParameter("@Param1", TextBox2.Text))
                .Add(New SqlParameter("@Param2", TextBox1.Text))
                .Add(New SqlParameter("@Lastid", SqlDbType.Int))
            End With
            cmd.Parameters("@Param1").Direction = ParameterDirection.Input
            cmd.Parameters("@Param2").Direction = ParameterDirection.Input
            cmd.Parameters("@Lastid").Direction = ParameterDirection.ReturnValue
 
            cmd.Connection = connection
 
            cmd.ExecuteNonQuery()
            TextBox3.Text = cmd.Parameters("@Lastid").Value
 
        Catch ex As Exception
 
        Finally
            connection.Close()
            connection.Dispose()
            connection = Nothing
        End Try
Mon problème est que je ne reçois jamais la valeur du identity dans TextBox3.Text du paramètre @Lastid.

Quelqu'un peut m'aider ?

Merci d'avance