Chapitre 7: Appeler une procédure stockée à l'aide d'ADO.NET et VB.NET

Page 1 sur 18Lecteur de document UniversityLib

Chapitre 7: Appeler une procédure stockée à l'aide d'ADO.NET et VB.NET

Programming, Database, ADO.NET, VB.NET · course

Voir tous les documents en programmation

Chapitre 7:

Appeler une procédure stockée à

l'aide d'ADO.NET et VB.NET

1

Procédure stockée

• Il y a deux types d’appel pour les procédures

stockées :

– Appel d'une procédure stockée sans paramètres

– Appel d'une procédure stockée avec des

paramètres.

2

Procédure stockée

• Supposant qu’on a la procédure stockée

suivante :

• create procedure PS_Client

As

Begin

select * from Client

End

3

Utilisation d'une procédure stockée

sans paramètres.

1) Création d‘un obj. Command

2) Spécification du type de Command (avant on

utilisait CommandText pour saisir une requête) avec

CommandType.StoredProcedure

3) On fait appel à la procédure stockée avec

CommandText = « nom-proc »

4) Création du DataAdapter pour exécuter cmd

4

Utilisation d'une procédure stockée sans

paramètres.

:

• Dans le Button_Click

' Création d‘un obj. Command

Dim cmd As OleDbCommand = cn.CreateCommand()

' Spécification du type de Command

cmd.CommandType = CommandType.StoredProcedure

‘ Appel de la procédure stockée

cmd.CommandText = " PS_Client "

‘ Création du DataAdapter en exécutant cmd (en le passant en

‘paramètre)

Dim Da As New OleDbDataAdapter(cmd)

‘mettre le résultat dans le dataset

Dim ds As New DataSet

Publicité

Da.Fill(ds, "PS_Clients")

'On veut afficher le résultat de PS_Clients dans un dataGridView

DataGrid1.DataSource = ds.Tables(" PS_Clients ")

5

Procédure stockée avec paramètres (I)

• Supposant qu’on a la procédure stockée

suivante :

• create procedure PS_ClientId (@code int)

As

Begin

select * from Client where code= @code

End

6

Utilisation d'une procédure stockée

avec des paramètres (I).

1) Création d‘un obj. Command (cmd)

2)

Spécification du type de Command avec

CommandType.StoredProcedure

3) On fait appel à la procédure stockée avec CommandText =

« nom-proc »

4) Ajouter le paramètre d’entrée de la procédure stockée à cmd

en utilisant la propriété Parameters de OleDbCommand ainsi

que son type

5) Préciser la direction du paramètre

ParameterDirection.Input|Output|InputOutput|ReturnValue

6) Création du DataAdapter pour exécuter cmd

7

Utilisation d'une procédure stockée avec

paramètres (I).

• Dans le Button_Click :

' Création d‘un obj. Command

Dim cmd As OleDbCommand = cn.CreateCommand()

' Spécification du type de Command

cmd.CommandType = CommandType.StoredProcedure

‘ Appel de la procédure

cmd.CommandText = " PS_ClientId "

‘Ajouter le paramètre d’entrée de la procédure stockée à

‘cmd en utilisant la propriété Parameters de

‘OleDbCommand ainsi que son type

Cmd.Parameters.Add (" @code ", OleDbType.Integer)

8

Utilisation d'une procédure stockée

avec des paramètres (I).

‘préciser la direction du paramètre (ParameterDirection.Input)

Publicité

Cmd.Parameters ("@code" ).Direction =

ParameterDirection.Input

‘donner une valeur à @code. Conversion Str to Int avec val ()

Cmd.Parameters ("@code" ).Value= val(TextBox1.Text)

‘ Création du DataAdapter pour exécuter cmd

Dim Da As New OleDbDataAdapter(cmd)

‘mettre le résultat dans le dataset

Dim ds As New DataSet

Da.Fill(ds, " PS_ClientId ")

'On veut afficher le résultat de PS_ClientId dans un dataGridView

DataGrid1.DataSource = ds.Tables(" PS_ClientId ")

9

Utilisation d'une procédure stockée

avec des paramètres (I).

10

Utilisation d'une procédure stockée

avec des paramètres (I).

• Ajouter Ds.clear() au début du code Button_Click

11

Procédure stockée avec paramètres (II)

12

Utilisation d'une procédure stockée avec

paramètres (II).

• Dans le Button_Click

:

' Création d‘un obj. Command

Dim cmd As OleDbCommand = cn.CreateCommand()

' Spécification du type de Command

cmd.CommandType = CommandType.StoredProcedure

‘ Appel de la procédure

cmd.CommandText = " PS_ClientNom "

‘Ajouter les paramètres d’entrée et de sortie de la procédure

‘stockée à cmd en utilisant la propriété Parameters de

‘OleDbCommand ainsi que son type

Cmd.Parameters.Add (" @code ", OleDbType.Integer)

Cmd.Parameters.Add (" @Nom ", OleDbType. VarChar, 255)

Cmd.Parameters.Add (" @Prenom ", OleDbType. VarChar, 255)

Cmd.Parameters.Add (" @retour", OleDbType.Integer)

13

Utilisation d'une procédure stockée

avec des paramètres (II).

‘préciser la direction du paramètre

Cmd.Parameters ("@code" ).Direction =

ParameterDirection.Input

Cmd.Parameters ("@Nom" ).Direction =

Publicité

ParameterDirection.Output

Cmd.Parameters ("@ Prenom " ).Direction =

ParameterDirection.Output

Cmd.Parameters ("@retour" ).Direction =

ParameterDirection. ReturnValue

‘donner une valeur à @code. Conversion Str to Int avec val ()

Cmd.Parameters ("@code" ).Value= val(TextBox1.Text)

14

Utilisation d'une procédure stockée

avec des paramètres (II).

‘ Création du DataAdapter pour exécuter cmd

Dim Da As New OleDbDataAdapter(cmd)

‘mettre le résultat dans le dataset

Dim ds As New DataSet

Da.Fill(ds, " PS_ClientNom ")

'On veut récupérer le résultat de PS_ClientNom dans deux

‘textbox

TextBox2.Text = Cmd.Parameters ("@Nom" ).Value.ToString

TextBox3.Text = Cmd.Parameters("@Prenom" ).Value.ToString

15

Utilisation d'une procédure stockée

avec des paramètres (II).

Valeur inexistante

16

Utilisation d'une procédure stockée

avec des paramètres (II).

‘ Création du DataAdapter pour exécuter cmd

Dim Da As New OleDbDataAdapter(cmd)

‘mettre le résultat dans le dataset

Dim ds As New DataSet

Da.Fill(ds, " PS_ClientNom ")

'On veut récupérer le résultat de PS_ClientNom dans deux textbox

If (Cmd.Parameters ("@retour" ).Value = 1 then

TextBox2.Text = Cmd.Parameters ("@Nom" ).Value.ToString

TextBox3.Text = Cmd.Parameters("@Prenom" ).Value.ToString

Else

MsgBox(« N’existe pas », MsgBoxStyle.Exclamation, « Erreur »)

End If

17

Utilisation d'une procédure stockée

avec des paramètres (II).

18