2010-03-04 41 views
0

我是在iphone應用程序中使用SQLite數據庫的新手。我創建了一個包含登錄表的數據庫,並將數據庫添加到項目中。登錄表包含3個字段ID,UsernamePassword字段。我在視圖的文本字段中輸入用戶名和密碼。現在我正在查看如何通過檢查表輸入用戶名和密碼正確時從登錄表中檢索id。任何人都可以在這裏幫忙。如何在iphone應用程序中編寫從sqlite數據庫表中檢索id的查詢

我的代碼:

-(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 =「從登錄處選擇ID,其中Username = txtusername.text和Password = txtpassword.text」; 我正在寫我這樣的陳述,我不認爲它的工作。 – Akhil 2010-03-04 18:55:17

+0

你確認你可以訪問你的sqlite數據庫嗎?你應該發佈一些代碼。此外,編輯您的帖子,而不是評論它。 – 2010-03-04 20:07:04

+0

嗨,Rob我用新的代碼編輯了我的問題,看看它。 謝謝 – Akhil 2010-03-04 21:16:07

回答

0

我得到了它通過寫這樣的代碼工作:

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

它現在爲我工作好。

1

您必須通過sqlite3的使用的格式SQL語句。你可能會做這樣的事情:

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

由於SQLite是一個C庫,你將需要獲得選擇字符串的UTF8版本,並傳遞到sqlite的lib目錄下:

if (sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL) == SQLITE_OK) 
相關問題