2010-03-04 3 views
0

Je suis nouveau à l'aide de la base de données SQLite dans les applications iPhone. J'ai créé une base de données avec une table de connexion et ajouté la base de données au projet. La table de connexion contient 3 champs ID, Username et Password champs. J'entre le nom d'utilisateur et le mot de passe dans les champs de texte de la vue. Maintenant, je cherche comment récupérer l'ID de la table de connexion lorsque le nom d'utilisateur et le mot de passe entré sont corrects en vérifiant la table. Quelqu'un peut-il aider à cela.Comment écrire la requête pour récupérer ID de la table de base de données sqlite dans les applications iPhone

Mon code:

-(void)checkInDatabase 
{ 
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
    { 
     //uid = "select count(*) from logins where Username==txtusername.text and Password==txtpassword.text"; 
     NSString* sql =[[NSString alloc] initWithFormat:@"select id from login where Username =%s and Password=%s;",txtusername.text,txtpassword.text]; 

     [sql UTF8String]; 
     sqlite3_stmt *statement; 
     if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) 
     { 
      if(sqlite3_step(statement) == SQLITE_ROW); 
      { 
       uid =[NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)]; 
      } 
     } 
     else 
     { 
      uid =0; 
     } 
     sqlite3_finalize(statement); 
    } 
    sqlite3_close(database); 
} 
+0

sql = "sélectionnez l'ID de connexion où Username = txtusername.text et Password = txtpassword.text"; J'écris mon instruction select comme ceci je ne pense pas que son fonctionnement. – Akhil

+0

Avez-vous vérifié que vous pouvez accéder à sqlite db? Vous devriez poster du code. En outre, modifiez votre publication au lieu de la commenter. –

+0

Salut Rob J'ai modifié ma question avec un nouveau code, jetez y un oeil. Merci – Akhil

Répondre

0

Je l'ai en travaillant en écrivant le code comme ceci:

NSString* sql = [[NSString alloc] initWithFormat: 
            @"select id from login where Username='%@' and 
            Password='%@'",txtusername.text,txtpassword.text]; 

Son fonctionnement bien pour moi maintenant.

1

Vous devez avoir votre instruction SQL dans un format utilisable par sqlite3. Vous pourriez faire quelque chose comme ceci:

NSString *select = [[NSString alloc] initWithFormat:@"select id from login where Username=%s and Password=%s;", txtusername.text, txtpassword.text]; 

Depuis SQLite est une bibliothèque C, vous devrez obtenir la version UTF8 de la chaîne de sélection et passer que la sqlite lib:

if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL) == SQLITE_OK) 
Questions connexes