我有以下语法使用C#删除访问查询...但我如何判断查询是否存在?
DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
dd = db.OpenDatabase(path);
dd.QueryDefs.Delete(queryName);
我也尝试了这个 - 但是收到了编译错误'无法分配给' Equals'因为它是一个'方法组'
var qd = new DAO.QueryDef();
if (qd.Name.Equals = "Hello")
{
dd.QueryDefs.Delete(queryName);
}
答案 0 :(得分:1)
尝试此SQL查询:
SELECT * FROM MSysObjects
WHERE Name="MyQuery" AND Type=5
如果您获得结果,则查询存在。 Type = 5用于查询(至少在我查看的数据库中)。
答案 1 :(得分:0)
您可以遍历QueryDefs集合并检查是否找到它......
DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
dd = db.OpenDatabase(path);
bool found= false;
foreach(DAO.QueryDef qd in dd.QueryDefs)
{
if (qd.Name == "Hello")
{
found = true;
}
}
if (found)
{
dd.QueryDefs.Delete(queryName);
}