Ich benutze das 2.0-Framework und ich suche nach einem generischen Weg, um festzustellen, ob eine Spalte in einer Tabelle existiert. Ich möchte diesen Code mit mehreren Datenbanktypen und Providern verwenden.Generische Möglichkeit, festzustellen, ob eine Spalte in ADO.NET existiert
Die GetSchema-Methode gibt Schemainformationen zurück, aber das Format der Informationen und die Daten zur Einschränkung der zurückgegebenen Informationen scheinen beide für den Anbieter spezifisch zu sein.
Die anderen Lösungen, die ich gesehen habe, scheinen auf Select * aus Tabelle zu laufen und dann die Ergebnisse zu suchen, um zu sehen, ob die Spalte existiert. Dies funktioniert, aber es scheint verrückt, eine Auswahl für die gesamte Tabelle auszustellen, um zu sehen, ob eine Spalte existiert.
Ich brauche in diesem Fall nicht die vollständigen Schemainformationen. Ich versuche nur, eine generische bool FieldExists (string tableName) -Methode zu implementieren. –
Ich liebe es, dem Management zu erklären, dass der SQL-Standard nicht wirklich ein Standard ist, da so vieles entweder anders implementiert oder überhaupt nicht in verschiedenen Datenbanken implementiert ist. –
Deshalb war ich fasziniert von diesem Projekt zur Implementierung von INFORMATION_SCHEMA auf Oracle. Oracle ist hier die große Ausnahme, aber es sollte nicht so schwer zu implementieren sein. Oracle stellt all diese Informationen zur Verfügung, nur in einem benutzerdefinierten Satz von Tabellen/Ansichten. Es ist wirklich nur eine Frage von einigen Leuten, die sich die Zeit nehmen, die Ansicht zu erstellen, um die Daten in das korrekte Schema zu übersetzen. – Clyde