Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SqlConnection.GetSchema仅获取表(无视图)_C#_Sql Server_Ado.net_Views_Sqlconnection - Fatal编程技术网

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

C# 使用SqlConnection.GetSchema仅获取表(无视图),c#,sql-server,ado.net,views,sqlconnection,C#,Sql Server,Ado.net,Views,Sqlconnection,当我使用 SqlConnection.GetSchema("Tables"); 它返回目标数据库的所有表和视图 有什么方法可以直接返回表格吗?我所做的所有研究都表明我的做法是正确的,但它总是像返回表一样返回视图。我在debug中深入研究了DataTable,甚至找不到区别。报告的数据类型相同。。。据我所知,它无法区分视图和表。(这在某种程度上是有意义的,因为所有意图和目的的视图都是一个表。) 我正在使用Northwind数据库进行测试 我正在用C#写申请书 下面是我正在运行以获取模式信息的代码

当我使用

SqlConnection.GetSchema("Tables");
它返回目标数据库的所有表和视图

有什么方法可以直接返回表格吗?我所做的所有研究都表明我的做法是正确的,但它总是像返回表一样返回视图。我在debug中深入研究了DataTable,甚至找不到区别。报告的数据类型相同。。。据我所知,它无法区分视图和表。(这在某种程度上是有意义的,因为所有意图和目的的视图都是一个表。)

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

我正在用C#写申请书

下面是我正在运行以获取模式信息的代码。很简单

SQLCon.Open();
DataTable tables = SQLCon.GetSchema("Tables");
SQLCon.Close();
我非常希望使用getschema方法,而不必以另一种方式查询数据库。。。如果可能的话。

根据,返回的数据表有一列
表类型
,它告诉您它是
视图
还是
基表


使用该列筛选出C#end上的视图。

以下是完整的语法

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

根据这个(),返回的数据表有一列
table\u type
,它告诉您它是
视图还是
基表
。使用该列过滤掉C#end上的视图。我不是在使用C#,但我相信带有所需限制的GetSchema(“表”,限制)应该可以工作。BeemerGuy.net,谢谢你的帮助。我看错了该死的数据表。如果您的回答是真实的,我可以将其标记为正确的。在许多方面,将表和视图视为独立且可区分的可能是错误的(事实上,有些人将视图称为虚拟表)。如果您确实区分了它们,就失去了一种改进数据库的有价值的方法——用另一个表结构替换一个表结构,但编写的视图模仿了原始结构,因此应用程序不需要修改。