使用SqlConnection.GetSchema仅获取表(无视图)

我用的时候

SqlConnection.GetSchema("Tables"); 

它返回目标数据库的所有表和视图。

有没有办法只返回表? 我所做的所有研究表明我正确地做了这一点,但它总是返回视图,就像它们是表格一样。 我已经在调试中挖掘了DataTable,我甚至找不到区别。 报告的数据类型相同……据我所知,它无法区分视图和表。 (它在某种程度上是有意义的,因为所有意图和目的的视图都是一个表。)

我正在使用Northwind数据库进行测试。

我正在用C#编写应用程序。

这是我运行以获取架构信息的代码。 很简单。

 SQLCon.Open(); DataTable tables = SQLCon.GetSchema("Tables"); SQLCon.Close(); 

我非常想使用getschema方法而不必以另一种方式查询数据库……如果可能的话。

根据这篇文章 ,返回的数据表有一个列table_type ,它告诉你它是一个VIEW还是一个BASE TABLE
使用该列过滤掉C#端的视图。

这是完整的语法

 DataTable table = connection.GetSchema("Tables", new string[] { null, null, null, "BASE TABLE" });