【问题标题】:FMDB error : No Such tableFMDB 错误:没有这样的表
【发布时间】:2018-06-21 15:58:25
【问题描述】:

我使用SQLite Manager 在 Documents 中创建了新数据库。 在那里也创建了一个带有示例行的表。 我用于数据库路径的这段代码:

  +(ModelManager *) getInstance
{

    if(!instance)
    {
        instance=[[ModelManager alloc]init];
        instance.database=[FMDatabase databaseWithPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"Inventorydb.sqlite"]];
    }
    return instance;
}

现在当我使用函数来显示数据时;表明 : 数据库错误:1“没有这样的表:inventorydata” 显示数据的代码是这样的:

-(void) displayData
{
    [instance.database open];
    FMResultSet *resultSet=[instance.database executeQuery:@"SELECT * FROM inventorydata"];
    if(resultSet)
    {
        while([resultSet next])
        NSLog(@"UPC : %@    Name : %@",[resultSet stringForColumn:@"upc"],[resultSet stringForColumn:@"name"]);
    }
    [instance.database close];
}

图像显示在 sqlite 管理器中创建的表。

这里有什么问题。

【问题讨论】:

  • 请提供 MCVE (meta.stackoverflow.com/questions/333952/…),以证明您提到的所有表确实存在。例如。库存数据。
  • 您创建了表格吗?使用该代码,您只创建了数据库
  • 我从 sqlite manager GUI 创建了表和数据库。 @ReinierMelian

标签: ios objective-c sqlite fmdb sqlitemanager


【解决方案1】:

我错过了在 App Delegate 文件中复制 DB 文件。

    [Util copyFile:@"Inventorydb.sqlite"];

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 2012-08-19
    • 1970-01-01
    • 2013-02-17
    • 2023-03-08
    • 2010-12-29
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多