Maison >développement back-end >C++ >Comment puis-je récupérer des données d'une procédure stockée à l'aide d'Entity Framework et remplir un GridView ?

Comment puis-je récupérer des données d'une procédure stockée à l'aide d'Entity Framework et remplir un GridView ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 18:14:10979parcourir

How Can I Retrieve Data from a Stored Procedure Using Entity Framework and Populate a GridView?

Accès aux données d'une procédure stockée avec Entity Framework

Cet article aborde le défi de la récupération de données à partir d'une procédure stockée SQL dynamique à l'aide d'Entity Framework 6.1 .1. L'objectif est de remplir un contrôle GridView avec les données récupérées.

Le scénario implique une procédure stockée appelée SearchProducts qui accepte un terme de recherche comme paramètre et renvoie un ensemble de résultats basé sur une requête SQL dynamique. Le code C# tente d'exécuter la procédure stockée et de lier le résultat à un contrôle GridView.

Le problème

Lorsque le code est exécuté, la procédure stockée fonctionne dans le Database Explorer mais échoue dans l’application en cours d’exécution, renvoyant -1 au lieu d’un DataSet IEnumerable. Cela indique que les données ne sont pas récupérées avec succès.

La solution

Pour résoudre ce problème, il est nécessaire d'importer la procédure stockée en tant que fonction dans l'entité modèle. Voici les étapes :

  1. Cliquez avec le bouton droit sur la zone d'espace de travail du modèle d'entité et choisissez Ajouter -> Importation de fonction.
  2. Dans la boîte de dialogue Ajouter une importation de fonction :

    • Entrez le nom de la fonction (par exemple, Search_Products).
    • Choisissez la procédure SearchProducts. dans la liste déroulante.
    • Définissez la valeur de retour sur Entités et choisissez Produits dans la liste déroulante. list.
  3. Mettez à jour le code C# :

    • Utilisez le nom de la fonction (Search_Products) dans l'objet Entity pour exécuter la procédure stockée.
    • Lier le résultat au GridView contrôle.

Le code révisé :

var db = new MyEntities();
var TEST_SEARCH_TERM = "product";
var result = db.Search_Products(TEST_SEARCH_TERM);

MyGridView.DataSource = result;
MyGridView.DataBind();

Explication

Entity Framework ne prend pas entièrement en charge les fichiers stockés. la procédure renvoie des valeurs. L'importation de la procédure stockée en tant que fonction permet de la traiter comme une méthode Entity Framework, qui peut gérer la récupération des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn