4

当我使用

SqlConnection.GetSchema("Tables");

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

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

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

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

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

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

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

4

2 回答 2

6

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

于 2012-11-05T07:38:23.503 回答
6

这是完整的语法

DataTable table = connection.GetSchema("Tables", new string[] { null, null, null, "BASE TABLE" });
于 2015-06-29T20:40:01.553 回答