2016-11-30 2 views
1

Я работал над приложением, в котором перечислены все таблицы из базы данных sql, чтобы разрешить некоторые изменения. Но не все таблицы должны быть видны. Может ли кто-нибудь сказать, как фильтровать мой запрос, чтобы он отображал только нужные таблицы?Таблица фильтров, отображаемая на combobox

код я есть сейчас:

con.Open(); 
using (SqlCommand com = new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con)) 
{ 
    using (SqlDataReader reader = com.ExecuteReader()) 
    { 
     tabelas.Items.Clear(); 
     while (reader.Read()) 
     { 
      tabelas.Items.Add((string)reader["TABLE_NAME"]); 
     } 
    } 
} 

Я думаю, что это должно быть что-то вроде

SELECT TABLES I WANT TO SHOW FROM INFORMATION_SCHEMA.TABLES 

Но в reader что я должен вставить?

Спасибо заранее,

+0

Это неправильный запрос неправильный – Sami

+0

«желаемых таблиц ...» Какие таблицы были бы такими? –

+0

'exec sp_tables, где table_name нравится '% желаемое%'' –

ответ

0

В ORACLE это, как я хотел бы получить список всех таблиц, которые Start ментов Слово ANALYSIS для примера

SELECT OBJECT_NAME 
FROM ALL_OBJECTS 
WHERE OBJECT_TYPE = 'TABLE' 
AND OBJECT_NAME LIKE 'ANALYSIS%'; 

В SQL Server вы можете следовать той же конструкции

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG LIKE'test%' 

Или использовать the IN CLAUSE

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME IN ('t1','t2','t3') 
+0

Я пробовал несколько комбинаций того, что вы предлагаете, но все еще не работает. Представьте, что у вас есть 4 таблицы, но вы хотите отобразить только 2 из них, которые называются таблицей и ноутбуком, как я могу фильтровать, чтобы отображались только эти два? Мои предыдущие имена таблиц были неправильными. – septaug

+0

@MethodMan, который будет давать имена таблиц всех баз данных. – Sami

+0

Я получил его, спасибо за советы. Я использовал: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN ('t1', 't2', 't3') – septaug

0

Ну, вы могли бы создать список «желательных» имена таблиц, а затем просто проверить, если «читатель [» TABLE_NAME «]» находится в списке OK таблиц, или использовать SQL "IN".

+0

LIKE STATEMENT было бы лучше в отношении использования Sql Wild Cards .. но пример в инструкции OP comment/sql выглядит корректно и фактически, если имена таблиц содержат слово 'test 'th en только одно предложение LIKE было бы необходимо не 3 – MethodMan

Смежные вопросы