我想要做的是从我自己的sqlite文件中读取数据。
我的应用程序允许我创建一个sqlite文件,然后从中读取但如果我添加文件“asg.sqlite”它不会从它读取它只有我有我的应用程序创建sqlite文件首先我可以读从中。我的大脑请帮忙,这是我的代码
-(void) createTable: (NSString *) tableName
withField1:(NSString *) field1
withField2:(NSString *) field2
withField3:(NSString *) field3
withField4:(NSString *) field4;
{
char *err;
NSString *sql = [NSString stringWithFormat:
@"CREATE TABLE IF NOT EXISTS '%@' ('%@' "" TEXT PRIMARY KEY, '%@' INTEGER, '%@' INTEGER, '%@' TEXT);", tableName, field1, field2, field3, field4 ];
if(sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err)
!= SQLITE_OK) {
sqlite3_close(db);
NSAssert(0, @"Could not create table");
} else {
NSLog(@"table created");
}
}
//file path to database
-(NSString *) filePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"asg.sqlite"
];
}
//open the database
-(void)openDB {
if (sqlite3_open([[self filePath] UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(0, @"Database failed to open");
}else{
NSLog(@"database opened");
}
}
答案 0 :(得分:0)
请记住,如果在捆绑包中添加db文件,它将不在Documents目录中。您将在应用程序的主要包中找到它。使用
[NSBundle mainBundle] pathForResource:....