Lorsque vous travaillez avec un DataSet contenant plusieurs tables avec des relations, il est crucial de réfléchir à la manière de remplir efficacement le DataSet tout en conservant l'intégrité des données. Bien que l'utilisation d'un DataReader offre une approche légère, elle peut poser des problèmes lors du remplissage de plusieurs tables. Voici une solution améliorée qui exploite les capacités de DataReader tout en traitant de la relation un-à-plusieurs :
Pour remplir un DataSet avec plusieurs tables à l'aide de DataReader, on peut envoyer plusieurs instructions select au serveur de base de données en une seule requête. Cette approche optimisée permet au serveur de traiter les requêtes efficacement et élimine le besoin d'exécutions séparées. Cependant, par défaut, les tables générées à partir des requêtes auront des noms automatiques (Table, Table1, etc.).
Pour mapper ces noms de tables générés à des tables spécifiques du DataSet, vous pouvez utiliser la propriété TableMappings de le SQLDataAdapter. Cette propriété permet l'association des noms de tables utilisés dans la requête avec les tables correspondantes dans le DataSet. Voici un exemple :
SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM Customers; SELECT * FROM Orders", connection); adapter.TableMappings.Add("Table", "Customer"); adapter.TableMappings.Add("Table1", "Order"); adapter.Fill(ds);
En mappant les noms de table générés sur « Client » et « Commande », les données des requêtes seront chargées dans les tables nommées correspondantes dans le DataSet. Cette approche garantit que les données appropriées circulent dans les tables appropriées tout en conservant les relations établies.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3