2010-12-15 59 views
0

J'essaye de construire une application d'asp.net, où j'ai trois tables.Comment insérer des informations d'une table dans sa table LINK?

tblRoute 
tblHalte 
tblHalteRoute 

Je veux insérer un routeID dans tblHalteRoute et pour chaque routeID plusieurs

de halteID TblRoute a les champs nécessaires (routeID (1) &
allHaltes [halteID1, halteID2, halteID3])
- -> so Chaque route a plusieurs Haltes auxquelles je peux accéder en analysant le champ allHaltes et en utilisant l'IDS.

Ce que je veux faire est mise à jour tblHalteRoute comme ceci:

tblRoute.routeID(1), tblRoute.allHaltes(halteID1) 
tblRoute.routeID(1), tblRoute.allHaltes(halteID2) 
tblRoute.routeID(1), tblRoute.allHaltes(halteID3) 

l'insertion de ces valeurs dans le tblHalteRoute .. Je ne suis vraiment pas sûr où chercher ou comment commencer, j'ai essayé d'utiliser SUBquerys avec un Insert avant un select, mais pas de succès.

Répondre

0

Si je vous comprends bien, vous essayez de faire pivoter les données - par exemple

Route 1 Halte 1 
Route 1 Halte 2 
Route 1 Halte 3 

--> 

Route 1 Halte 1 Halte 2 Halte 3 

Je suis aussi en supposant que vous dire LINQ pas LINK (comme dans le mécanisme d'accès aux données)

Si cette est le cas, vous pourriez écrire une fonction qui fait quelque chose comme:

Dim MyNewRow = New tblHalteRoute 
Dim Routes = MyRoutes.Where(function(x) x.RouteId = 1).OrderBy(function(x) x.RouteId) 

MyNewRow.Route1 = Routes.First.id 
MyNewRow.Route2 = Routes.Skip(1).First.id 
MyNewRow.Route£ = Routes.Skip(2).First.id 

Il vaut la peine nnoting que vous faites une hypothèse que votre table de routage aura plus de champs d'identifiant que il y a des Ids = Cela peut être une hypothèse valide pour votre application, mais même si c'est le cas, cela me semble dangereux - je vous suggère de stocker cela correctement (c'est-à-dire garder relationnel) et puis juste For Each chaque ligne comme requis - alors il n'y a pas de limite à le nombre d'ID disponibles.

+0

Hej Basiclife, merci pour la réponse rapide. Avec la table LINK, je mets en place une table de références croisées (reliant deux tables via leur IDS si je me trompe?) Je dois admettre que votre réponse n'est pas entièrement claire pour moi (pas cette expérience). Je vais essayer de récapituler une Route a beaucoup d'Haltes (stockées dans le champ alleHaltes (divisé par, s) mais une halte peut aussi avoir des routes différentes.Si je fais une nouvelle route avec ID (1) et halte (1) (2) et (3), je devrais mettre à jour le routeID et halteID de la table de référence croisée comme ceci: routeID1 + halteID1, routeID1 + halteID2, routeID1 + halteID3 – Hans