簡體   English   中英

如何在C#中使用OleDB在MS Access文件中列出所有查詢?

[英]How do I list all the queries in a MS Access file using OleDB in C#?

我有一個包含200個查詢的Access 2003文件,我想在SQL中打印出它們的表示形式。 我可以使用Design View查看每個查詢並將其剪切並粘貼到文件中,但這很繁瑣。 另外,我可能必須在其他Access文件上再次執行此操作,因此,我絕對想編寫一個程序來執行此操作。

查詢在哪里存儲Access數據庫? 我找不到任何關於如何達到目標的信息。 我不熟悉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 Schema的方法將它們放在一起

糟糕,忘記了鏈接: MSDN

如果您想手動進行快速查詢。

SELECT MSysObjects.Name
FROM MSysObjects
WHERE type = 5

不在C#中,但可能是一個不錯的起點:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM