如何查看.db文件的内容?

时间:2016-02-07 00:28:01

标签: ios database

我正在使用Xcode 6.4,开发需要使用数据库的iOS 8应用程序。我在我的数据库中插入了一些信息(“something.db”文件)。我想看看“something.db”的内容,看看我插入了什么。如何查看其内容?

这是我创建数据库“company.db”的代码和表“Staff”(ID PK,NAME TEXT,AGE INTEGER):

-(void) createOrOpenDB {
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docPath = [path objectAtIndex:0];
    dbPathString = [docPath stringByAppendingPathComponent:@"company.db"];
    char *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if(![fileManager fileExistsAtPath:dbPathString]) {
        const char *dbPath =[dbPathString UTF8String];
         if(sqlite3_open(dbPath, &personDB)==SQLITE_OK) {
            const char *sql_stmt = "CREATE TABLE IF NOT EXISTS Staff (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, AGE INTEGER)";
            sqlite3_exec(personDB, sql_stmt, NULL, NULL, &error);
            sqlite3_close(personDB);
        }
     }
}

这是我将信息插入“员工”表格的代码:

- (IBAction)addPersonButton:(id)sender {
    char *error;
    if(sqlite3_open([dbPathString UTF8String], &personDB) == SQLITE_OK) {
        NSString *insertStmt = [NSString stringWithFormat:@"INSERT INTO Staff (NAME, AGE) values ('%s', '%d')", [self.nameField.text UTF8String], [self.ageField.text intValue]];
        const char *insert_stmt = [insertStmt UTF8String];
        if(sqlite3_exec(personDB, insert_stmt, NULL, NULL, &error) == SQLITE_OK) {
            NSLog(@"Person added");
            Person *person = [[Person alloc] init];
            [person setName:self.nameField.text];
            [person setAge:[self.ageField.text intValue]];
            [arrayofPerson addObject:person];
        }

        sqlite3_close(personDB);
    }
}

代码运行良好,因为我能够在tableview中显示“Staff”表的信息。但是如何在.db文件中查看该信息?

p / s:我将其更改为“something.xls”,但Excel不显示人类可读的信息。我还下载了Fileviewpro但不知道如何使用。有人帮帮我!

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用任何旨在查看sqlite文件内容的应用。例如:http://sqlitebrowser.org

如果您在模拟器上运行,则可以使用~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/ 进入模拟器,只需将长UDID替换为您的设备。