从SQlite数据库中检索Integer值

时间:2011-11-27 07:26:50

标签: sqlite

从SQLite db中检索Integer值时遇到问题。我有一个存储在db中的Integer。在我的Illness课程中,我已将其声明为NSNumber * sickid。

从数据库读取时,我做

NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)];
..........
[listContent addObject:[Illness illnessWithid:illid illness:illness defn:definition]];

其中listcontent是NSMutable数组。

现在我将Illness对象传递给另一个类并尝试检索sickid以查询数据库。

NSNumber *myno = illness.illnessid;
NSInteger illid = [myno integerValue];

但是这个illid不是db中存储的整数值。我需要帮助!

1 个答案:

答案 0 :(得分:0)

您将SQLite数据库中的值作为char *提取并尝试将其显式转换为int。这是不可能的。作为替代方案,只需将值直接拉为int即可。

更改此行...

NSNumber *illid = [NSNumber numberWithInt:(int)sqlite3_column_text(compiledStatement, 0)];

到...

NSNumber *illid = [NSNumber numberWithInt:sqlite3_column_int(compiledStatement, 0)];