在访问查询中搜索带方括号的参数

问题描述

我尝试在 C# 中识别具有数千个查询数据库访问,只有带有虚构参数的查询

(例如,从 soMetable 中选择 id、Nation、Name,其中 Nation = [Give a Nation])。

我尝试了 GetoleDbSchemaTable,但没有成功。 我还尝试使用 Access 中的 MSysQueriesMSysObjects,然后在 C# 中检索信息,但没有成功。

你能帮我什么?

解决方法

你必须参考互操作 - 这个:

using System.Data.OleDb
Imports Microsoft.Office.Interop.Access.Dao

public void ShowParms()
{
var strPath = @"C:\Users\AlbertKallal\source\repos\DesktopFun\test44.accdb";

Database db;
DBEngine dbACE = new DBEngine();
db = dbACE.OpenDatabase(strPath);
QueryDef query;
Parameter qParm;

foreach (var query in db.QueryDefs)
{
    if (Strings.Left(query.Name,1) != "~")
    {
        Debug.Print("Query name = " + query.Name);
        // parmaters
        foreach (var qParm in query.Parameters)
            Debug.Print("query parmater name = " + qParm.Name + "  type = " + qParm.Type);
    }
}
}

上面将列出每个查询 - 如果它有参数 - 那么它会列出那些。