1

从 sql 我需要获取列、表和视图名称。
使用此解决方案,我只能获取基表名称和列,但不能获取视图名称。

SqlDataReader reader = command.ExecuteReader(CommandBehavior.KeyInfo);
DataTable schemaTable = reader.GetSchemaTable();
   foreach (DataRow row in schemaTable.Rows)
 
var baseTableName = row["BaseTableName"].ToString(),
var columnName = row["ColumnName"].ToString(),
var baseColumnName = row["BaseColumnName"].ToString()                   
}

例如:
我的看法:

CREATE VIEW view1 as 
select * from table1 inner join table2 on table1.id1 = table.id2 

sql = "select col1, col2 from view1"

然后我得到: BaseTableName: table1
BaseColumnName:col1
ColumnName:col1

BaseTableName:table2
BaseColumnName:col2
ColumnName:col2

我无法从 sql 获取视图名称。所以我想获得 view1 而不是 table1 和 table2。我尝试了所有不同的 CommandBehavior 选项。有任何想法吗?
我使用 .NET Framework 4.7.2

4

0 回答 0