Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查查询是否存在如果是-删除_C#_Ms Access_Vsto - Fatal编程技术网

C# 检查查询是否存在如果是-删除

C# 检查查询是否存在如果是-删除,c#,ms-access,vsto,C#,Ms Access,Vsto,我有以下语法可以使用C#删除访问查询…但是如何首先检查查询是否存在 DAO.Database dd; DAO.DBEngine db = new DAO.DBEngine(); dd = db.OpenDatabase(path); dd.QueryDefs.Delete(queryName); 我也尝试了这个方法,但收到了一个编译错误'cannotassignto'Equals',因为它是一个'methodgroup' var qd = new DAO.QueryDef(); if (qd.

我有以下语法可以使用C#删除访问查询…但是如何首先检查查询是否存在

DAO.Database dd;
DAO.DBEngine db = new DAO.DBEngine();
dd = db.OpenDatabase(path);
dd.QueryDefs.Delete(queryName);
我也尝试了这个方法,但收到了一个编译错误'cannotassignto'Equals',因为它是一个'methodgroup'

var qd = new DAO.QueryDef();
if (qd.Name.Equals = "Hello")
{
  dd.QueryDefs.Delete(queryName);
}
尝试以下SQL查询:

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

如果得到结果,则表示查询存在。Type=5用于查询(至少在我查看的数据库中是这样的)。

您可以在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);
}