如何使用 OleDb 获取视图的结构/查询?
Posted
技术标签:
【中文标题】如何使用 OleDb 获取视图的结构/查询?【英文标题】:How to obtain a view's structure/query using OleDb? 【发布时间】:2021-06-11 05:27:28 【问题描述】:我有一个从 Access 2010 数据库文件 (.mdb) 读取数据的 ASP.Net 应用程序。
我可以像这样轻松列出数据库中的所有表和视图:
string sql = "select name from msysobjects where type in (1,5)";
OleDbCommand cmd = new OleDbCommand(sql,con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dataTable); // now dataTable contains all ojbects' names I have created in access
我想询问的是不依赖 Access 的表/视图的结构。 IE,使用外部 OleDb 命令。
在 Oracle 中,我可以通过运行命令来做到这一点
describe table_name;
describe view_name;
describe procedure_name;
但是如何在 MS Access 中完成呢?
【问题讨论】:
使用 GetSchema 给出表和列的列表。 docs.microsoft.com/en-us/dotnet/framework/data/adonet/… 【参考方案1】:与所有关系数据库一样,存在表中的表(反射数据)。这些通常是隐藏的,但您可以从 msysObjects 中选择 *。过滤类型将允许您将表与查询与报表与表单区分开来,但也允许将内部表与映射表区分开来。
如果您希望它们在导航窗格中列出,则右键单击窗格,选择导航选项,然后单击显示系统对象复选框。
【讨论】:
以上是关于如何使用 OleDb 获取视图的结构/查询?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Oledb 对象插入 ms-access 查询获取无效查询异常