当我使用
时SqlConnection.GetSchema("Tables");
它返回目标数据库的所有表和视图。
有没有办法只返回牌桌?我所做的所有研究表明我正确地做了这一点,但它总是返回视图,就像它们是表格一样。我在调试中挖掘了DataTable,我甚至找不到区别。报告的数据类型相同......据我所知,它无法区分视图和表。 (它确实有道理,因为所有意图和目的的视图都是一个表。)
我正在使用Northwind数据库进行测试。
我正在用C#编写应用程序。
以下是我为获取架构信息而运行的代码。很简单。
SQLCon.Open();
DataTable tables = SQLCon.GetSchema("Tables");
SQLCon.Close();
我非常想使用getschema方法而不必以另一种方式查询数据库......如果可能的话。
答案 0 :(得分:6)
根据this article,返回的数据表格中有table_type
列,可以告诉您它是VIEW
还是BASE TABLE
。
使用该列过滤掉C#端的视图。
答案 1 :(得分:4)
这是完整的语法
DataTable table = connection.GetSchema("Tables", new string[] { null, null, null, "BASE TABLE" });