在目标C中打开和创建SQLite数据库

我想开发一个iOS应用程序,因此我正在学习ObjectiveC。我遵循了在应用程序中使用SQLite数据库的教程。http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_7_Application

我有以下用于打开和创建数据库的代码,但是它不起作用!我收到消息“无法打开或创建数据库”。有人可以告诉我怎么了吗?

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *docsDir;
    NSArray *dirPaths;

    // Get the documents directory
    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

    docsDir = dirPaths[0];

    // Build the patht to the database file
    _databasePath = [[NSString alloc]initWithString: [docsDir stringByAppendingPathComponent: @"contacts.db"]];

    NSFileManager *filemgr = [NSFileManager defaultManager];

    if ([filemgr fileExistsAtPath:_databasePath] == NO) {
        const char *dbpath = [_databasePath UTF8String];

        if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK) {
            char *errMsg;
            const char *sql_stmt = "CREATE TABLE IF NOT EXISTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT";

            if (sqlite3_exec(_contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK) {
                _lblStatus.text = @"Failed to create table";

            }

            sqlite3_close(_contactDB);
        } else {
            _lblStatus.text = @"Failed to open or create database";
        }
    }
}

我已经包含了'libsqlite3.dylib'并将#import添加到H文件中。

手工制作

在您的代码中,有一些错误

// Get the documents directory
    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

使用NSDocumentDirectory而不是NSDocumentationDirectory

我认为它将解决您的问题。在我的建议下,您可以尝试核心数据。更简单了,您可以尝试一下本教程http://www.raywenderlich.com/934/core-data-tutorial-for-ios-getting-started

这真的很简单,很容易理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

来自分类Dev

未在sqlite中创建数据库

来自分类Dev

在 PublisherCacheFolder 中创建 Sqlite 数据库

来自分类Dev

如何在SQLite数据库iOS目标C中自动递增

来自分类Dev

从Android中先前创建的SQLite数据库中搜索和检索特定数据?

来自分类Dev

如何检查SQLite数据库是否在C / C ++中打开

来自分类Dev

如何检查SQLite数据库是否在C / C ++中打开

来自分类Dev

在Cordova中打开预填充的SQLite数据库

来自分类Dev

docker卷中的sqlite数据库未打开

来自分类Dev

在C#中打开SQLite数据库,无需安装任何工具

来自分类Dev

需要帮助在 C 中打开一个 sqlite3 数据库

来自分类Dev

Java和C#创建的SQLite数据库具有不同的大小

来自分类Dev

SQLite数据库未打开错误

来自分类Dev

Python:打开压缩的SQLite数据库

来自分类Dev

无法打开数据库android Sqlite

来自分类Dev

sqlite无法打开数据库

来自分类Dev

PDO SQLite无法打开数据库

来自分类Dev

SqLite C ++,可以创建数据库,但不能在表中插入内容

来自分类Dev

在sqlite中的运行时创建数据库表

来自分类Dev

从Android SQLite数据库中删除动态创建的EditText

来自分类Dev

如何在Qt中创建SQLite数据库

来自分类Dev

无法在android中创建Sqlite数据库

来自分类Dev

SQLite数据库在我的代码中创建问题

来自分类Dev

最初何时在Android中创建SQLite数据库?

来自分类Dev

如何在android的Sqlite数据库中创建表

来自分类Dev

使用 IONIC 3 + CORDOVA 在 SQLite 中创建数据库

来自分类Dev

在Visual Studio和SSMS中同时打开数据库

来自分类Dev

如何在不冒创建新数据库风险的情况下打开SQLite3数据库?

来自分类Dev

在C ++应用程序中存储,跟踪和更新SQLite数据库版本

Related 相关文章

  1. 1

    在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

  2. 2

    未在sqlite中创建数据库

  3. 3

    在 PublisherCacheFolder 中创建 Sqlite 数据库

  4. 4

    如何在SQLite数据库iOS目标C中自动递增

  5. 5

    从Android中先前创建的SQLite数据库中搜索和检索特定数据?

  6. 6

    如何检查SQLite数据库是否在C / C ++中打开

  7. 7

    如何检查SQLite数据库是否在C / C ++中打开

  8. 8

    在Cordova中打开预填充的SQLite数据库

  9. 9

    docker卷中的sqlite数据库未打开

  10. 10

    在C#中打开SQLite数据库,无需安装任何工具

  11. 11

    需要帮助在 C 中打开一个 sqlite3 数据库

  12. 12

    Java和C#创建的SQLite数据库具有不同的大小

  13. 13

    SQLite数据库未打开错误

  14. 14

    Python:打开压缩的SQLite数据库

  15. 15

    无法打开数据库android Sqlite

  16. 16

    sqlite无法打开数据库

  17. 17

    PDO SQLite无法打开数据库

  18. 18

    SqLite C ++,可以创建数据库,但不能在表中插入内容

  19. 19

    在sqlite中的运行时创建数据库表

  20. 20

    从Android SQLite数据库中删除动态创建的EditText

  21. 21

    如何在Qt中创建SQLite数据库

  22. 22

    无法在android中创建Sqlite数据库

  23. 23

    SQLite数据库在我的代码中创建问题

  24. 24

    最初何时在Android中创建SQLite数据库?

  25. 25

    如何在android的Sqlite数据库中创建表

  26. 26

    使用 IONIC 3 + CORDOVA 在 SQLite 中创建数据库

  27. 27

    在Visual Studio和SSMS中同时打开数据库

  28. 28

    如何在不冒创建新数据库风险的情况下打开SQLite3数据库?

  29. 29

    在C ++应用程序中存储,跟踪和更新SQLite数据库版本

热门标签

归档