L'Utilisation De SqlConnection.GetSchema afin d'obtenir les Tables (Pas de Vue)

Lorsque j'utilise

SqlConnection.GetSchema("Tables");

il renvoie toutes les tables ET les vues de la base de données cible.

Est-il possible de simplement retourner les tables? Toutes les recherches que j'ai effectué à l'indique je suis en train de faire ceci correctement, mais il renvoie toujours le point de vue comme ils sont des tableaux. J'ai creusé vers le bas dans le DataTable en debug et je ne peux même pas trouver une différence. Les types de données sont présentés de la même... aussi loin Que je peux dire, il ne peut pas différencier entre une vue et une table. (Il n'a de sens que dans un chemin depuis une vue à toutes fins et intentions EST un tableau.)

Je suis en utilisant la base de données Northwind pour les tests.

Je suis en train d'écrire l'application en C#.

Voici le code que je suis en cours d'exécution pour obtenir les informations de schéma. Assez simple.

SQLCon.Open();
DataTable tables = SQLCon.GetSchema("Tables");
SQLCon.Close();

J'aimerais beaucoup utiliser le getschema méthode et ne pas avoir à interroger la base de données d'une autre façon... si possible.

Selon cette (msdn.microsoft.com/en-us/library/ms254969.aspx), les données renvoyées table a une colonne table_type, qui vous dit si c'est un VIEW ou un BASE TABLE. Utilisez cette colonne pour filtrer les vues sur votre C# fin.
Je suis pas à l'aide de C# , mais je crois GetSchema("Tables",les restrictions) avec vos restrictions souhaitées devrait fonctionner.
BeemerGuy.net, merci qui fonctionne. Je cherchais au mauvais putain de tableau de données. Si vous faites votre réponse une réponse réelle, je peux le marquer comme étant correcte.
Dans beaucoup de façons, traiter des tables et des vues distinctes et distingue peut-être une erreur (en effet, certains font référence à des points de vue comme des tables virtuelles). Si vous ne vous distinguer, vous prenez un moyen précieux de l'évolution d'une base de données - le remplacement d'une structure de la table avec l'autre, mais l'écriture de points de vue qui imitent la structure d'origine, de sorte que les applications n'ont pas besoin de modification.

OriginalL'auteur Steve | 2012-11-04