我有一个问题,当我选择用户名时,返回的只是一个对象,表中包含了所有的用户名,如何解决这个问题,我尝试由数据库管理器选择,我发现查询sql语句是正确的
- (NSMutableArray*) FindAccounts
{
///database
NSString *docsDir;
NSArray *dirPaths;
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
// Build the path to the database file
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"TRIAL.sqlite"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat:@"SELECT USERNAME,TYPE FROM CONTNEW"];
const char *query_stmt = [querySQL UTF8String];
NSMutableArray *resultArray = [[NSMutableArray alloc]init];
if (sqlite3_prepare_v2(contactDB,query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
if (sqlite3_step(statement) == SQLITE_ROW)
{
NSString *USERS = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];
[resultArray addObject:USERS];
return resultArray;
}
else{
NSLog(@"Not found");
return nil;
}
sqlite3_reset(statement);
}
}
return nil;
}发布于 2014-10-28 18:14:16
好的,试试这个(注意没有太多的错误报告):
- (NSMutableArray*) FindAccounts
{
NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *databasePath = [docsDir stringByAppendingPathComponent:@"TRIAL.sqlite"];
sqlite3_stmt *statement;
// I assume contactDB is an instance variable?
if (!contactDB &&
sqlite3_open([databasePath UTF8String], &contactDB) != SQLITE_OK) {
NSLog(@"Failed to open database");
return nil;
}
NSString *querySQL = @"SELECT USERNAME,TYPE FROM CONTNEW ORDER BY USERNAME";
NSMutableArray *resultArray = [NSMutableArray new];
if (sqlite3_prepare_v2(contactDB, [querySQL UTF8String], -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
NSString *username = @(sqlite3_column_text(statement, 0));
[resultArray addObject:username];
}
sqlite3_reset(statement);
}
return resultArray;
}https://stackoverflow.com/questions/26605419
复制相似问题