GetSchema(String)
Метод предоставляет метаданные указанных объектов БД (коллекции данных), связанных с текущим соединением.
Синтаксис
public override DataTable GetSchema(string collectionName);
collectionName
– имя коллекции данных (строковое значение из столбца 1 в таблице 9).
Возвращаемое значение
Объект DataTable
типа System.Data.DataTable
(структуру записей см. в таблице 8).
Исключения
ArgumentException | Коллекция данных не поддерживается. | |
InvalidOperationException | Соединение не открыто. | |
LinterSqlException | Код завершения СУБД ЛИНТЕР не равен 0 . |
Пример
// C# using System; using System.Data; using System.Data.Common; class GetSchemaSample { static void Main() { DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.LinterClient"); DbConnection con = factory.CreateConnection(); con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;DataSource=LOCAL"; try { // Соединение с БД con.Open(); // Получение сведений о схеме базы данных DataTable schema = con.GetSchema("Restrictions"); // Вывод полученных сведений на экран OutputDataTable(schema); } catch (Exception ex) { Console.WriteLine("Ошибка: " + ex.Message); } finally { // Освобождение ресурсов con.Close(); } } private static void OutputDataTable(DataTable dataTable) { Console.WriteLine(new String('-', 60)); foreach (DataColumn column in dataTable.Columns) { Console.Write(column.ColumnName + " | "); } Console.WriteLine(); Console.WriteLine(new String('-', 60)); foreach (DataRow row in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { if (row.IsNull(i)) { Console.Write("< NULL > | "); } else { Console.Write(row[i] + " | "); } } Console.WriteLine(); } } } Результат выполнения примера: --------------------------------------------------------------------------- CollectionName |RestrictionName |RestrictionDefault|RestrictionNumber| --------------------------------------------------------------------------- CharacterSets |Id | |0 | CharacterSets |Name | |1 | Columns |Catalog | |0 | Columns |Schema | |1 | Columns |Table | |2 | Columns |Column | |3 | Connections |UserName | |0 | Devices |Device | |0 | ForeignKeyColumns |Catalog | |0 | ForeignKeyColumns |Schema | |1 | ForeignKeyColumns |Table | |2 | ForeignKeyColumns |ForeignKey | |3 | ForeignKeyColumns |ForeignKeyColumn | |4 | ForeignKeys |Catalog | |0 | ForeignKeys |Schema | |1 | ForeignKeys |Table | |2 | ForeignKeys |ForeignKey | |3 | Groups |Group | |0 | IndexColumns |Catalog | |0 | IndexColumns |Schema | |1 | IndexColumns |Table | |2 | IndexColumns |Index | |3 | IndexColumns |Column | |4 | Indexes |Catalog | |0 | Indexes |Schema | |1 | Indexes |Table | |2 | Indexes |Index | |3 | Levels |Level | |0 | ProcedureColumns |Catalog | |0 | ProcedureColumns |Schema | |1 | ProcedureColumns |Procedure | |2 | ProcedureParameters|Catalog | |0 | ProcedureParameters|Schema | |1 | ProcedureParameters|Procedure | |2 | Procedures |Catalog | |0 | Procedures |Schema | |1 | Procedures |Procedure | |2 | ReplicationServers |ReplicationServer| |0 | Roles |Role | |0 | Sequences |Schema | |0 | Sequences |Sequence | |1 | Stations |Station | |0 | Synonyms |Catalog | |0 | Synonyms |Schema | |1 | Synonyms |Synonym | |2 | Tables |Catalog | |0 | Tables |Schema | |1 | Tables |Table | |2 | Tables |Type | |3 | Triggers |Catalog | |0 | Triggers |Schema | |1 | Triggers |Trigger | |2 | Users |User | |0 | Views |Catalog | |0 | Views |Schema | |1 | Views |View | |2 |