我试图在C#中识别一个有数千个查询的DB Access,只有虚构参数的查询,
(例如,从某个表中选择id、Nation、Name,其中Nation=[Give a Nation](。
我尝试了GetOleDbSchemaTable,但没有成功。我还尝试使用Access中的MSysQueries和MSysObjects,然后在C#中检索信息,但没有成功。
你能帮我什么?
您必须引用interop-这个:
using System.Data.OleDb
Imports Microsoft.Office.Interop.Access.Dao
public void ShowParms()
{
var strPath = @"C:UsersAlbertKallalsourcereposDesktopFuntest44.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);
}
}
}
上面将列出每个查询,如果它有参数,那么它将列出这些参数。