Comment : exécuter une procédure stockée qui ne retourne aucune valeur
Pour exécuter une procédure stockée qui ne retourne aucune valeur, vous pouvez lancer une requête TableAdapter configurée pour exécuter une procédure stockée (par exemple, CustomersTableAdapter.UpdateTableData(CustomersDataTable)).
Si votre application n'utilise pas de TableAdapters, appelez la méthode ExecuteNonQuery sur un objet de commande en affectant à sa propriété CommandType la valeur StoredProcedure. (L'« objet de commande » fait référence à la commande spécifique au fournisseur de données .NET Framework que votre application utilise. Par exemple, si votre application utilise le fournisseur de données .NET Framework pour SQL Server, l'objet de commande est SqlCommand.)
Les exemples suivants illustrent l'exécution de procédures stockées qui ne retournent aucune valeur provenant d'une base de données à l'aide de TableAdapters ou d'objets de commande. Pour plus d'informations sur la façon d'interroger à l'aide de TableAdapters et de commandes, consultez Remplissage de groupes de données avec des données.
Notes
Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.
Exécution de procédures stockées qui ne retournent aucune valeur à l'aide d'un TableAdapter
Cet exemple illustre la création d'une requête TableAdapter à l'aide de l'Configuration de requête TableAdapter (Assistant), puis fournit des informations sur la manière de déclarer une instance de TableAdapter et d'exécuter la requête.
Pour créer une procédure stockée qui ne retourne aucune valeur à l'aide d'un TableAdapter
Ouvrez un groupe de données dans le Concepteur de DataSet. Pour plus d'informations, consultez Comment : ouvrir un groupe de données dans le Concepteur de DataSet.
S'il n'existe pas encore de TableAdapter, créez-en un. Pour plus d'informations sur la création de TableAdapters, consultez Comment : créer des TableAdapters.
Si vous disposez déjà dans votre TableAdapter d'une requête qui utilise une procédure stockée qui ne retourne aucune valeur, passez à la procédure suivante, « Pour déclarer une instance du TableAdapter et exécuter la requête ». Sinon, passez à l'étape 4 pour créer une nouvelle requête qui ne retourne aucune valeur.
Cliquez avec le bouton droit sur le TableAdapter de votre choix et utilisez le menu contextuel pour ajouter une requête.
L'Assistant Configuration de requêtes TableAdapter s'ouvre.
Sélectionnez Utiliser une procédure stockée existante, puis cliquez sur Suivant.
Sélectionnez une procédure stockée dans la liste déroulante, puis cliquez sur Suivant.
Choisissez de ne retourner Aucune valeur, puis cliquez sur Suivant.
Spécifiez le nom de la requête.
Cliquez sur Suivant, ou sur Terminer pour fermer l'Assistant ; la requête est ajoutée au TableAdapter.
Générez votre projet.
Pour déclarer une instance du TableAdapter et exécuter la requête
Déclarez une instance du TableAdapter qui contient la requête que vous souhaitez exécuter.
Pour créer une instance qui utilise des outils de conception, faites glisser le TableAdapter de votre choix de la Boîte à outils. (Les composants contenus dans votre projet apparaissent maintenant dans la Boîte à outils sous un titre qui correspond à votre nom de projet.) Si le TableAdapter n'est pas affiché dans la Boîte à outils, il se peut que vous deviez générer votre projet.
ou
Pour créer une instance dans du code, remplacez le code suivant par les noms de votre DataSet et de votre TableAdapter.
Dim tableAdapter As New DataSetTableAdapters.TableAdapter
Notes
Les TableAdapters ne se trouvent pas réellement à l'intérieur de leurs classes DataSet associées. Chaque groupe de données possède une collection correspondante de TableAdapters dans son propre espace de noms. Par exemple, si vous disposez d'un groupe de données nommé SalesDataSet, il existe un espace de noms SalesDataSetTableAdapters contenant ses TableAdapters.
Appelez votre requête comme s'il s'agissait de toute autre méthode dans du code. Votre requête est une méthode sur le TableAdapter. Remplacez le code suivant par les noms de votre TableAdapter et de votre requête. Vous devez également passer tous les paramètres requis par votre requête. Si vous ne savez pas si votre requête exige des paramètres, ni quels paramètres sont nécessaires, recherchez dans IntelliSense la signature nécessaire à la requête. Selon que votre requête prend ou non des paramètres, le code peut se présenter comme l'un des exemples suivants :
TableAdapter.Query()
TableAdapter.Query(Parameters)
Le code complet permettant de déclarer une instance du TableAdapter et d'exécuter la requête doit se présenter sous la forme suivante :
Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter() Dim rowsAffected As Integer rowsAffected = CType(tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI"), Integer)
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); int rowsAffected = tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI");
Exécution de procédures stockées qui ne retournent aucune valeur à l'aide d'un objet de commande
L'exemple suivant illustre la création d'une commande et l'exécution d'une procédure stockée qui ne retourne aucune valeur. Pour plus d'informations sur la définition et l'obtention des valeurs de paramètre pour une commande, consultez Comment : définir et obtenir des paramètres pour des objets de commande.
Cet exemple utilise l'objet SqlCommand et requiert les éléments suivants :
- des références aux espaces de noms System, System.Data et System.Xml ;
Pour exécuter une procédure stockée qui ne retourne aucune valeur à l'aide d'un DataCommand
Ajoutez le code suivant à une méthode à partir de laquelle vous souhaitez exécuter la procédure stockée. Appelez la méthode ExecuteNonQuery d'une commande pour ne retourner aucune valeur (par exemple, ExecuteNonQuery).
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim rowsAffected As Integer cmd.CommandText = "StoredProcedureName" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = sqlConnection1 sqlConnection1.Open() rowsAffected = cmd.ExecuteNonQuery() sqlConnection1.Close()
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); Int32 rowsAffected; cmd.CommandText = "StoredProcedureName"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = sqlConnection1; sqlConnection1.Open(); rowsAffected = cmd.ExecuteNonQuery(); sqlConnection1.Close();
Sécurité
L'application requiert l'autorisation d'accéder à la base de données et d'exécuter l'instruction SQL.
Voir aussi
Tâches
Comment : créer des requêtes TableAdapter
Comment : modifier des requêtes TableAdapter
Comment : remplir de données un groupe de données
Comment : définir et obtenir des paramètres pour des objets de commande