Remplir un DataSet avec plusieurs tables à l'aide de DataReader
Lorsque vous travaillez avec un DataSet contenant plusieurs tables avec des relations, il est nécessaire de remplir toutes les tables pour maintenir l’intégrité des données. Bien que l'utilisation de DataReader puisse être bénéfique pour les performances, elle nécessite une approche légèrement différente de celle de DataAdapter.
DataReader ne fournit pas de mécanisme direct pour remplir plusieurs tables en une seule requête. Cependant, il est possible d'y parvenir en exécutant plusieurs instructions SELECT dans une seule requête. Le défi réside dans l'attribution de noms de table significatifs aux tables générées à partir de ces requêtes.
Pour surmonter ce problème, vous pouvez utiliser la propriété TableMappings de SqlDataAdapter, comme illustré ci-dessous :
SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM Customers; SELECT * FROM Orders", connection); adapter.TableMappings.Add("Table", "Customer"); adapter.TableMappings.Add("Table1", "Order"); adapter.Fill(ds);
Ce code exécute les deux instructions SELECT dans une seule requête et mappe les tables résultantes aux noms souhaités (« Client » et « Commande ») dans le DataSet. En spécifiant les noms des tables, vous vous assurez que le DataSet est correctement rempli avec les relations correctes entre les tables.
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!