我的表中有 12 列。其中最后两列是新添加的。我使用 sqlite3 数据库。如果我对除最后创建的两个新列之外的任何其他列使用 where 子句,则会创建数据库并正确执行查询。最后两列返回 NULL 字符串,这会使应用程序崩溃并由于未捕获的异常“NSInvalidArgumentException”而引发终止应用程序,原因:'* +[NSString stringWithUTF8String:]: NULL cString' * *
在 SQL 管理器中执行查询时,我可以检索最后两列。我想我的准备声明中有什么地方有问题。
NSString *query = @"select * from tableName where lastColumn = 'Value'";
const char *sqlStatement = [query UTF8String];
sqlite3_stmt *compiledStatement;
NSLog(@"could not prepare statement: %s\n", sqlite3_errmsg(database));
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
}
请帮助我。我完全不知道最后两列去了哪里.. :)