如何从我的项目中使用数据库的iPhone
问题描述:
从数据库检索一个特定的列。那里有近365个问题。因此,我想得到一个particulat问题的特定day.i使用下面的代码来获取来自数据库的疑问。如何从我的项目中使用数据库的iPhone
-(void)print{
sqlite3_stmt *statement;
// SELECT * from light where rowid = %i",1
qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '365'"];
if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
NSLog(@"%dsssssssssssssss",sqlite3_step(statement));
NSLog(@"%ddddddddddddddddddddd", (SQLITE_ROW));
NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSLog(@"%@ gg",Q_NO);
当我在我给像QSQL =语句中使用它被打印从database.Also正确问题上面的代码[NSString的stringWithFormat:@“从ishh选择*,其中COL_1 =‘1’”];它没有提到这个问题。 但是,当我使用下面的代码,它不是从数据库中获取。
-(void)print{
sqlite3_stmt *statement;
// SELECT * from light where rowid = %i",1
qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '1'"];
if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
NSLog(@"%dsssssssssssssss",sqlite3_step(statement));
NSLog(@"%ddddddddddddddddddddd", (SQLITE_ROW));
NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSLog(@"%@ gg",Q_NO);
while (sqlite3_step(statement) == (SQLITE_ROW))
{
NSLog(@" iolo");
NSString *Q_NO = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
//NSString *Q_NO = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%i",sqlite3_column_int(statement, 0)]];
NSLog(@"%@ gg",Q_NO);
}
sqlite3_reset(statement);
}
sqlite3_finalize(statement);
}
Can anyone tell me where im going wrong.Thanks in advance.
答
-(void)print{
sqlite3_stmt *statement;
qsql=[NSString stringWithFormat:@"Select * from ishh where col_1 = '1'"];
if(sqlite3_prepare_v2(database, [qsql UTF8String], -1, &statement, NULL) == SQLITE_OK) {
while (sqlite3_step(statement) == (SQLITE_ROW))
{
char *field0 = (char *)sqlite3_column_text(statement, 0);
char *field1 = (char *)sqlite3_column_text(statement, 1);
NSString *Q_NO = nil;
if(field0!=NULL){
Q_NO = [[NSString alloc] initWithUTF8String:field0];
}
NSString *Q_NO1 = nil;
if(field1!=NULL){
Q_NO1 = [[NSString alloc] initWithUTF8String:field1];
}
NSLog(@"%@ %@",Q_NO, Q_NO1);
[Q_NO release];
[Q_NO1 release];
}
}
sqlite3_finalize(statement);
}
+0
感谢它为我工作.. – ishhhh
你确定你有'ishh'记录其中'col_1'是'1'?如果它正在'365'而不是'1'上工作,那似乎是问题所在。 –
是的..有一个记录 – ishhhh
什么类型的列是col_1?如果它不是'INTEGER',请确保它没有任何空格。你还可以检查sqlite是否返回任何错误? (用'NSLog(@“%s”,sqlite3_errmsg(database))添加'else';') –