J'ai une situation étrange ici et j'espère que quelqu'un peut m'aider. Je n'ai pas le même problème lors de l'utilisation d'un ensemble de données non typé.Populate Dataset avec UNION ALL requête SQL
OK. J'ai un jeu de données typé MyDS avec un MyTable dactylographié (TableID, Title, Message).
Le tableau est rempli avec des résultats de deux tables, en utilisant un UNION ALL
Select
TableAID,
TableATitle,
Message
FROM TableA
UNION ALL
Select
TableBID,
TableBTitle,
Message
FROM TableB
Dim cmd As SqlCommand = New SqlCommand("SQL", conn)
Dim da AS SqlDataAdapter = New SqlDataAdapter(cmd)
da.Fill(MyDS.MyTable)
La requête fonctionne bien sur SQL Server, mais quand je fais un pas dans le code, je trouve TableAID incorrect ou TableAID.
La table A a une rangée et la tableB a 15 rangées. Donc mon dataset renvoie 16 lignes (donc en gros c'est une situation de détail principal). Toutes les colonnes renvoient les données respectives correctes, à l'exception de TableAID et TableBID.
TableAID a value = et TableBID a 10, 11, 12, 13, 24 ........., mais quand je fais un pas à travers, la
MyDS.MyTable(i).TableID
reste 100 tout au long des 16 fiches , au lieu de 100, 10, 11, 12, 13, ......... 24. Le titre, les données du message sont correctes. TableAID et TableBID sont mes clés primaires.
i = 0 à 15
Est-ce la façon dont les jeux de données tapées poignées UNION? Je ne voulais pas créer deux datatables typés et créer un SQL séparé pour chacun et créer une relation.
Y a-t-il une logique conditionnelle dans le code que vous utilisez pour accéder à la base de données? Si oui, avez-vous la possibilité de modifier votre question pour l'inclure? –
Il n'y a pas de logique conditionnelle. Je peuple un gridview avec les résultats. Rien d'extraordinaire. – Nyiko
Je pense que je devrais voir le code derrière votre jeu de données fortement typé/datatable. – knslyr