2014-04-21 96 views
2

我有以下語法來使用C#刪除訪問查詢...但我該如何檢查查詢是否存在?如果是,請檢查是否存在查詢 - 刪除

DAO.Database dd; 
DAO.DBEngine db = new DAO.DBEngine(); 
dd = db.OpenDatabase(path); 
dd.QueryDefs.Delete(queryName); 

我也嘗試過這一點 - 但收到的編譯錯誤「無法分配到‘等於’,因爲它是一個‘方法組’

var qd = new DAO.QueryDef(); 
if (qd.Name.Equals = "Hello") 
{ 
    dd.QueryDefs.Delete(queryName); 
} 

回答

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); 
} 
1

試試這個SQL查詢:

SELECT * FROM MSysObjects 
WHERE Name="MyQuery" AND Type=5 

如果得到結果,則查詢存在。 Type = 5用於查詢(至少在我查看的數據庫中)。