我有一个包含 200 个查询的 Access 2003 文件,我想在 SQL 中打印出它们的表示形式。我可以使用设计视图查看每个查询并将其剪切并粘贴到文件中,但这很乏味。另外,我可能必须在其他 Access 文件上再次执行此操作,因此我肯定想编写一个程序来执行此操作。
Access db 的查询存储在哪里?我找不到任何能说明如何对付它们的东西。我不熟悉Access,所以我会很感激任何指针。谢谢!
程序是您正在寻找的:
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();
}
您可以使用 OleDbConnection 的GetSchema方法以及 Remou 发布的关于 ADO 架构的内容将其放在一起
哎呀忘记了链接: MSDN
如果您想手动进行快速查询。
SELECT MSysObjects.Name
FROM MSysObjects
WHERE type = 5
不在 C# 中,但可能是一个不错的起点: