Получить только столбцы таблицы с помощью метода DbConnection.GetSchema - PullRequest
0 голосов
/ 26 декабря 2011

С C # и SQL Server 2005 и с помощью метода DbConnection.GetSchema() я хочу получить только все столбцы таблицы (не представлений).Я нашел два имени коллекции, связанных с этим

  1. Columns, который возвращает столбцы таблицы и представлений
  2. ViewColumns возвращает все столбцы представления

Ни один из двух приведенных выше не возвращает только столбцы таблицы, и они не имеют какого-либо свойства для фильтрации столбцов таблицы.

Любая помощь уважается.

1 Ответ

0 голосов
/ 26 декабря 2011

Я не вижу простого способа сделать это с этим конкретным API, с которым вы пытаетесь достичь этого - но почему бы просто не использовать такой запрос для получения вашей информации?

SELECT
    c.name AS 'ColumName',
    ty.Name AS 'TypeName',
    c.max_length,
    c.is_identity,
    c.is_nullable,
    t.name AS 'TableName'
FROM sys.columns c
INNER JOIN sys.types ty ON c.user_type_id = ty.user_type_id
INNER JOIN sys.tables t ON c.object_id = t.object_id

Просто загрузите это в SqlCommand и выполните его для открытого соединения, которое у вас есть, и прочитайте результат в некоторую DataTable или другую структуру для вашего использования. Это дает вам только столбцов таблицы - и все они.

...