2011-09-13 57 views
0

奇怪的问题任何人都请解决它sqlite3 - 虽然循环未执行

while循环未执行,在我读取数据库代码。

这里是我的代码

NSString * [email protected]"select usernote from savenote where recipename like ? "; 

      const char * sqlStatement=[query UTF8String]; 

      sqlite3_stmt *compiledStatement; 

      sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 

      if (sqlite3_prepare_v2 (database, sqlStatement,-1,&compiledStatement,NULL)==SQLITE_OK) 
      { 
       sqlite3_bind_text(compiledStatement,1,[selString UTF8String],-1,SQLITE_STATIC); 
       NSLog(@"selected:%@",selString); 


       while (sqlite3_step(compiledStatement)== SQLITE_ROW) 
       { 


        NSString * notz=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; 
        [Notes addObject:notz]; 

        NSLog(@"n:%@",Notes); 
        txt.text=[Notes objectAtIndex:0]; 

       } 

      } 
     } 

在上面的代码中除了while循环永远不会被执行一切工作正常。

感谢您阅读我的文章。

+0

你尝试使用调试器来逐步通过您的代码?也许包含* while *循环的* if *语句永远不会计算为真。如果没有,也许你对* sqlite3_prepare_v2()*的调用失败... –

回答

0

我猜问题是在查询中。在like条款中添加单引号')。

"select usernote from savenote where recipename like '?'"; 
0

您可以按照this link

你的情况,代码如下,

const char * sqlStatement = "select usernote from savenote where recipename like ?001 "; 

sqlite3_bind_text(compiledStatement,1,[selString UTF8String],-1,SQLITE_TRANSIENT);