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

问题描述

我尝试在 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);
    }
}
}

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...