1

テキストフィールドの電子メールの値を sqlite データベースの値と比較する際に問題があります。両方の値が同じ場合、「電子メールはデータベースに既に存在します」という警告ボックスが表示されます。この目的のために findcontact という名前の関数を作成しました。ボタンのクリックから関数を呼び出しています。ボタンをクリックすると、ボタンクリックメソッドがfindContactメソッドに書き込んだログを生成するため、ボタンクリックメソッドが機能しています。

しかし、私にとっての問題は、両方の電子メールが一致する場合に電子メールと表示アラートボックスの両方を比較する方法です

- (void) findContact:(NSString *) email{

    const char *dbpath = [path UTF8String];

    if (sqlite3_open(dbpath, &database) == SQLITE_OK){
        NSString *querySQL = [NSString stringWithFormat: @"SELECT email FROM CONTACT WHERE email=\"%@\"",email];
        NSLog(@" email = %@", querySQL);
        const char *query_stmt = [querySQL UTF8String];
        NSLog(@" char email = %s", query_stmt);
        if (sqlite3_prepare_v2(database, query_stmt, -1, &init_statement, NULL) == SQLITE_OK){
            if (sqlite3_step(init_statement) == SQLITE_ROW){
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"email already exist in database" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK ", nil];
                [alert show];
                [alert release];
            }
            else {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"email not exist" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK ", nil];
                [alert show];
                [alert release];
            }
            sqlite3_finalize(init_statement);
        }
        sqlite3_close(database);
    }
}
4

2 に答える 2

1

コードでこのような比較を行います

    while(sqlite3_step(compiledStatement)==SQLITE_ROW)
    {

        NSString *emaiID = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)];

        if ([emaiID isEqualToString:yourTextField.text])
        {
            UIAlertView *alert = [[UIAlertView alloc]
                                  initWithTitle:@"Error"
                                  message:@"email already exist in database"
                                  delegate:nil
                                  cancelButtonTitle:nil
                                  otherButtonTitles:@"OK ", nil];
            [alert show];
        }
        else{
            //Your task
        }
        }
于 2012-12-05T08:12:06.950 に答える
0

これをチェックして

NSString *querySQL = [NSString stringWithFormat: @"SELECT email FROM CONTACT WHERE email='%@'",email]; 

    if(sqlite3_prepare_v2(sharedDataBase, [querySQL UTF8String], -1, &statment, nil) == SQLITE_OK)
    {
        if(sqlite3_step(statment)==SQLITE_ROW){

            char *email=(char *)sqlite3_column_text(statment, 0); 

            NSString  *emailStr =[NSString stringWithUTF8String:email]; 

            // email exist 

        }
        else{

            // email not exist
        }

        sqlite3_finalize(statment); 
    }
    else
        sqlite3_close(sharedDataBase); 
于 2012-12-05T07:51:35.857 に答える