在combobox上显示的过滤表beeing

时间:2016-11-30 16:11:37

标签: c# sql

我一直在开发一个应用程序,列出sql数据库中的所有表,以便进行一些编辑。 但并非所有表格都应该可见。 任何人都可以告诉我如何过滤我的查询,以便它只显示所需的表吗?

我现在的代码是:

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我应该插入什么?

提前致谢,

2 个答案:

答案 0 :(得分:0)

好吧,你可以创建一个“所需”表名列表,然后检查“reader [”TABLE_NAME“]”是否在你的OK表列表中,或者使用SQL“IN”语句。

答案 1 :(得分:0)

在ORACLE中,这就是我如何获得所有以Word 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%'

或使用IN CLAUSE

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