从 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