Code Bye

求助,关于FMDatabase的使用

 

– (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    NSString* dbName=[Internationalization getKwp2000DBName];//@”FaultCode.sqlite”;
    _dbPath = [[[NSBundle mainBundle] resourcePath]  stringByAppendingPathComponent:dbName];
    FMDatabase *db=[FMDatabase databaseWithPath:_dbPath];
    [faultMutabelArray removeAllObjects];
    if ([db open]) {
        
        NSString *NSsql=[NSString stringWithFormat:@”SELECT Title FROM t_person WHERE name like “”%%%@%%”” ;”,searchText,nil];
        
        FMResultSet *resultSet = [db executeQuery:NSsql];
        while ([resultSet next]) {
            NSString * number = [resultSet stringForColumn:@”Title”];
            NSString *FaultStringNumber =  [number substringToIndex:5];
            if (FaultStringNumber!= nil) {
                [faultMutabelArray addObject:FaultStringNumber];
            }
        }
    }else
    {
        NSLog(@”数据库打开失败”);
    }
}
为什么没有满足[resultset next],不执行while里边的东西

确定数据库中存在满足“SELECT Title FROM t_person WHERE name like “”%%%@%%”” ;”的数据,且多于一条。


有,还不止一条,怀疑sqlite语句有问题,但是实在不知道什么问题

求解决


20分
检查两个方面
1. 操作的数据库中是否有数据。确保你打开的数据库是documents目录下的。
2. 使用NSLog()输出你的sql语句。 查看生成的sql是否有误,放到sqlite工具中执行看看结果。
引用 4 楼 zhanglei5415 的回复:

检查两个方面
1. 操作的数据库中是否有数据。确保你打开的数据库是documents目录下的。
2. 使用NSLog()输出你的sql语句。 查看生成的sql是否有误,放到sqlite工具中执行看看结果。

第二个检查方法好用。谢谢


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求助,关于FMDatabase的使用