C# C中SQLDataReader的ExecuteReader()出现问题#

C# C中SQLDataReader的ExecuteReader()出现问题#,c#,sql-server,C#,Sql Server,在数据库中查询视图时,使用SqlDataReader的ExecuteReader(CommandBehavior.KeyInfo)方法时,我遇到了一个问题 我的视图应该检索4列。但是使用下面的代码,它返回6列。额外的2列是用于构建视图的表的关键字段列 SqlDataReader reader = command.ExecuteReader(CommandBehavior.KeyInfo); DataTable dt = reader.GetSchemaTable(); 对于Oracle,视图

在数据库中查询视图时,使用
SqlDataReader
ExecuteReader(CommandBehavior.KeyInfo)
方法时,我遇到了一个问题

我的视图应该检索4列。但是使用下面的代码,它返回6列。额外的2列是用于构建视图的表的关键字段列

SqlDataReader reader = command.ExecuteReader(CommandBehavior.KeyInfo); 
DataTable dt = reader.GetSchemaTable();
对于Oracle,视图与SQL Server相同,使用下面的代码,我只得到4列

OracleDataReader odr = command.ExecuteReader(CommandBehavior.KeyInfo);
DataTable dt = odr.GetSchemaTable();

请为SQL Server的此问题提供一些解决方案。

如果您不想在两列中添加键信息,为什么要使用该命令行为?您尝试过command.ExecuteReader()吗;仅?我们需要字段上的字段信息,如“IsHidden”、“AllowDBNulls”、“IsReadOnly”属性。我可以使用commandbehavior检索它们。而且视图是由用户创建的,因此会有不同类型的视图。在这种情况下,视图中没有任何KeyField列。如果您再获得两列,这又有什么关系呢?用户只需要查询中的那些列,而不需要任何额外的列。