2011-10-18 18 views
0

私はユーザがユーザ名&を入力しなければならないログインページを持っており、初めてユーザは任意のユーザ名&パスワードを入力することができます。sqlite3 dbを使用してselect&insertクエリを使用する

最初のシナリオ:私はDB

2番目のシナリオにログイン情報を挿入する必要が

初回:

、ユーザーがログインしている二度目私は、ユーザーの詳細情報を選択する必要がありますもう一度挿入するのではなく、データベースから。

上記の2つの操作は、ログインボタン操作で行っています。

処理の方法を教えてください。

ありがとうございました。

答えて

0

NSString userNameとuserPasswordを使用して、まずカスタムクラスUserDetailsを作成します。

次にあなたが

- (UserDetails *)getUserDetails:(NSString *)userLogin password:(NSString *)userPassword 
{ 
    UserDetails *retVal; 

    sqlite3 *database; 

     NSString *dbPath = @"your_db_path"; 

    if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK){ 

     const char *sql_statement = [[NSString stringWithFormat:@"select * from Users where UserLogin = '%@' and UserPassword = '%@'", userLogin, userPassword] UTF8String]; 

     sqlite3_stmt *compiled_statement;  

     if(sqlite3_prepare_v2(database, sql_statement, -1, &compiled_statement, NULL) == SQLITE_OK){ 

      while(sqlite3_step(compiled_statement) == SQLITE_ROW){ 
       [retVal setUsername:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(compiled_statement, 0)]]; 

       [retVal setPassword:[NSString stringWithUTF8String:(const char *)sqlite3_column_text(compiled_statement, 1)]]; 

      } 

      sqlite3_finalize(compiled_statement); 
      sqlite3_close(database); 

     } 

    } 

    return retVal; 
} 

そして、あなたはほぼ同じコードを使用することができ、データを挿入するためではなく、値を返さずにデータを読み込むために、このような何かを試すことができますので、あなたがそれを必要とする場合の方法は、ボイドや一部の制御値を返します。あなたは、実行中にエラーが発生した場合にのみ、SQL文では、あなたのアプリのこのフローのユーザー(userloginの、のUserPassword)の値(「%の@」、「%の@」)

+0

2つの操作を1つの方法または1つのアクションで実行しますか?最初の挿入オプションは、次回から選択操作のみが動作するはずです。 – Santosh

+0

次に、selectが0レコードを返す場合、新しいレコードと同じデータを挿入してSQLクエリを実行することを追加できます –

2

挿入のようなものになりますしながら、 4つのフィールドを持つテーブルを作成する必要があります。

1.id 2.username 3.password 4.flag(デフォルト値は0である)

、その後(0 =フラグのために)フラグを除いて、ユーザー名とパスワードのフィールドにいくつかのダンプ値を追加します。その後、そのsqliteDBをアプリケーションにコピーする必要があります。

初めてurl dbからユーザー名のパスワードとフラグを選択する必要があります。 フラグ= 0の場合はflagの値を確認し、username、password、flag = 1の値を更新します。

もう一度フラグフィールドをチェックして、elseフィールドに移動します。ここで、テキストフィールドに入力したユーザー名とパスワードと比較する必要があります。存在する場合、彼は有効なユーザーです。他のユーザーは有効なユーザーではありません

関連する問題