2009-06-05 6 views
0

Est-il possible de fournir des lignes datatable avec des noms sous forme de chaîne comme on le fait avec les colonnes? Je veux pouvoir faire référence à une rangée via un nom plutôt qu'un index.Puis-je fournir une ligne datable avec un nom?

EDIT: Mon mauvais. Je travaille en C#. J'aurais dû le dire. Je fais des études de corrélation de marché en utilisant l'analyse statistique. Je veux stocker les résultats des études de corrélation dans un dataTable. Chaque colonne est un marché inclus dans les études. Les lignes auront les mêmes noms que les colonnes dans le même ordre. Je placerais donc la sortie d'une étude de corrélation entre le marché de l'or et le marché du cuivre à l'intersection de la colonne "Or" et de la ligne "Cuivre" (ainsi qu'à l'intersection des colonnes "Cuivre" et "Or"). ").

Afin de se référer facilement aux sorties de ces études ailleurs dans mon code, je veux être en mesure de se référer aux lignes par le nom du marché plutôt que par l'indice.

Merci!

+0

Nous allons avoir besoin de plus d'informations sur ce que vous essayez de faire. Sinon, la réponse par défaut est: SELECT * FROM MyTable WHERE Name = '' –

+1

Vous ne pouviez pas vous référer à la ligne via la clé primaire? Cela (devrait) être unique. Je sais que le mécanisme est différent de la référence aux lignes, mais il devrait toujours fournir la ligne correcte. –

+0

En outre, un peu plus d'information aiderait. Voulez-vous faire référence à la classe DataTable dans System.Data? –

Répondre

0

Je n'ai aucune idée de la base de données que vous utilisez, mais je ne pense pas qu'il existe un moyen de le faire. Dans Oracle, il y a quelque chose de similaire appelé rowid (un identifiant unique par ligne, indépendant d'une clé primaire), mais je ne suis pas sûr que d'autres bases de données aient la même chose.

0

Quelque chose d'aussi simple qu'un Enum pour vos noms de ligne/colonne aide ici?

0

Je vais aller sur une branche ici et suggèrent que la structure de la table que vous utilisez peut ne pas être le meilleur pour le stockage de vos résultats. Une raison est qu'il n'est pas facilement extensible - vous devez modifier physiquement la table si vous ajoutez/soustrayez les marchés pour lesquels vous enregistrez la corrélation.

Je vois une meilleure structure pour maintenir les données:

ID | Market1 | Market2 | Correlation 
------------------------------------ 
1 | Gold | Silver | 0.8 
2 | Gold | Bronze | 0.5 
3 | Silver | Bronze | 0.1 
etc 

With a Primary Key (PK) on (Market1, Market2) 

Cela se chargera de toutes vos données et vous permettra d'ajouter facilement des marchés à l'avenir. L'inconvénient est que vous devez vous assurer que vous n'avez pas plusieurs entrées pour les mêmes données à savoir "Gold - Silver" et "Silver - Gold"

Avec cette structure, vous pouvez simplement demander le tableau pour les résultats à " Or et argent".

Cependant donnant un résultat sous forme de tableau de tous les marchés seront un peu plus complexe et je partirais que pour une autre question SO: D

Questions connexes