【问题标题】:Code Not Deleting Tables [closed]代码不删除表[关闭]
【发布时间】: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。像您在这里所做的那样删除花括号并没有“改善”任何事情。对所有控制语句使用大括号,即使它们只有一行,也是一种完全合法(在我看来,有益的)做法。

标签: c# dao


【解决方案1】:

您似乎是想建立新名称?目前你有

string newName = Convert.ToString(q);

所以 newName 永远只是一个数字。不太可能与您的表名匹配。

【讨论】:

  • 啊——这么简单的编码错误。如果我将其更新为 string newName = tableNames[1];它会完全按照需要做!
猜你喜欢
  • 2012-09-12
  • 2017-01-16
  • 2021-11-28
  • 2011-11-03
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多