2

我有一个包含 200 个查询的 Access 2003 文件,我想在 SQL 中打印出它们的表示形式。我可以使用设计视图查看每个查询并将其剪切并粘贴到文件中,但这很乏味。另外,我可能必须在其他 Access 文件上再次执行此操作,因此我肯定想编写一个程序来执行此操作。

Access db 的查询存储在哪里?我找不到任何能说明如何对付它们的东西。我不熟悉Access,所以我会很感激任何指针。谢谢!

4

4 回答 4

6

程序是您正在寻找的:

OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();

DataTable queries = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Procedures, null);

conn.Close();

这将为您提供一个 DataTable,其中包含以下列(除其他外):

PROCEDURE_NAME:查询的名称

PROCEDURE_DEFINITION:SQL 定义

所以你可以像这样遍历表格:

foreach(DataRow row in queries.Rows)
{
    // Do what you want with the values here
    queryName = row["PROCEDURE_NAME"].ToString();
    sql = row["PROCEDURE_DEFINITION"].ToString();
}
于 2008-12-16T16:21:47.163 回答
1

您可以使用 OleDbConnection 的GetSchema方法以及 Remou 发布的关于 ADO 架构的内容将其放在一起

哎呀忘记了链接: MSDN

于 2008-12-16T14:56:47.663 回答
1

如果您想手动进行快速查询。

SELECT MSysObjects.Name
FROM MSysObjects
WHERE type = 5
于 2011-09-29T22:46:26.017 回答
-2

不在 C# 中,但可能是一个不错的起点:

http://www.datastrat.com/Code/DocDatabase.txt

于 2008-12-16T14:18:32.293 回答