【发布时间】:2014-06-08 19:37:43
【问题描述】:
我使用非常相似的语法来删除查询,但是当我尝试检查表是否存在并删除它时,表实际上并没有被删除。我是否错过了一个步骤或使用了错误的语法?
string path = "C:\\Database\\EmployeeInfo\\EmpInfo.mdb";
bool found = false;
DAO.DBEngine db = new DAO.DBEngine();
dd = db.OpenDatabase(path);
try
{
string[] tableNames = new string[3]
{
supName + "_Profile1",
supName + "_Profile2",
supName + "_Profile3",
};
for (int q = tableNames.GetLowerBound(0); q <= tableNames.GetUpperBound(0); q++)
{
foreach (DAO.TableDef tabledef in dd.TableDefs)
{
string newName = Convert.ToString(q);
if (tabledef.Name == newName)
{
found = true;
}
if (found)
{
dd.TableDefs.Delete(newName);
}
}
}
}
编辑 --- 简单语法错误....代码应该是:
string newName = tableNames[q];
【问题讨论】:
-
您可能无法在迭代
dd.TableDefs时修改dd.TableDefs -
Grrr...关于解决方法的任何建议,以便我可以检查多个表名?
-
@Vkt0rS。像您在这里所做的那样删除花括号并没有“改善”任何事情。对所有控制语句使用大括号,即使它们只有一行,也是一种完全合法(在我看来,有益的)做法。