下面是我的代码,我正在尝试从 my.sqlite 数据库中获取数据,但它没有执行我的 if 案例。它总是在 else 条件下进入。我在做什么错事?我无法执行我的 if 案例,即 if(sqlite3_prepare_v2(database, sqlQuerry, -1, &queerryStatement, NULL)==SQLITE_OK)
sqlite3 *database;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"my.sqlite"];
const char* dbPath=[databasePath UTF8String];
if(sqlite3_open(dbPath, &database)==SQLITE_OK)
{
const char *sqlQuerry="SELECT * FROM Contacts;";
sqlite3_stmt *querryStatement;
if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK)
{
NSLog(@"conversion successful....");
while (sqlite3_step(querryStatement)==SQLITE_ROW)
{
NSString *addressField = [[NSString alloc] initWithUTF8String:
(const char *)
sqlite3_column_text(querryStatement, 0)];
NSString *phoneField = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(querryStatement, 1)];
NSLog(@"DB ID :- %@",addressField);
NSLog(@"DB NAME :- %@",phoneField);
}
sqlite3_reset(querryStatement);
}
else {
NSLog(@"error while conversion....");
}
sqlite3_close(database);
}
///////////////////////////////////////// ////////////////////////////////////我尝试使用fmdb并将其作为bellow:但我的* s和*结果对象是获取 nil 值并且未执行 while 语句
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"my.sqlite"];
FMDatabase* database = [FMDatabase databaseWithPath:path];
[database open];
FMResultSet *s = [database executeQuery:@"SELECT COUNT(*) FROM Contacts"];
while ([s next])
{
int totalCount = [s intForColumnIndex:0];
NSLog(@"Count : %i", totalCount);
}
FMResultSet *results = [database executeQuery:@"select * from Contacts"];
而([结果下一个]){
NSString *contact_id = [results stringForColumn:@"contact_id"];
NSString *name = [results stringForColumn:@"name"]; //
NSLog(@"User: %@ - %@",name, contact_id);
}
[database close];