简单的应用程序,如登录页

时间:2011-04-05 05:57:11

标签: iphone objective-c sqlite

我是iPhone应用程序制作的新手,我正在尝试创建一个简单的页面 - 它就像一个登录页面。我有一个SQLite数据库,它有用户名和密码。 我的GUI是这样的:我有两个文本字段,用户名和密码,还有一个登录按钮。

我找到了创建登录页面的代码,但它不起作用。看看下面的代码,看看我是否出错了。它说“函数的参数太多'isEqualToString:'”

-(void)checkindatabase
{
    NSString *txtUsername = @"";
    NSString *txtPassword = @"";
    NSString *sqlStatement = @"";
    NSString *direct = [[NSString alloc]init] ;
    NSString *dbPath = [direct stringByAppendingPathComponent:@"journeymapper.db3"];


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

        sqlStatement = [[NSString alloc] initWithFormat:@"select Username='%@',Password='%@' from UserInformation",txtuser.text,txtpass.text];
        //[sql UTF8String];
            //NSLog(@"'%s'",[sql UTF8String]);
        sqlite3_stmt *statment;
        if(sqlite3_prepare_v2(database, [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding], -1, &statment, NULL) == SQLITE_OK)
        {
             while (sqlite3_step(statment) == SQLITE_ROW)
             {
                 txtUsername = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statment,1)] retain];
                 txtPassword = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statment, 2)] retain];

             }


        }
                sqlite3_finalize(statment);
                sqlite3_close(database);
        if([txtUsername isEqualToString:@"%@",_Textuser]&&[txtPassword isEqualToString:@"%@",_Textpass])
            { 
                UIAlertView* alert = [[UIAlertView alloc] initWithTitle:nil message:@"You are  vaild user" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [alert show];
                [alert release];
            }


    }

}

-(IBAction)login
{
    [self checkindatabase]; 
}

2 个答案:

答案 0 :(得分:1)

而不是:

[txtUsername isEqualToString:@"%@",_Textuser]

使用:

[txtUsername isEqualToString:_Textuser]

或:

[txtUsername isEqualToString:[NSString stringWithFormat:@"%@",_Textuser]]

正如错误所说,你有太多(2)个参数,方法-isEqualToString:只需要一个。

答案 1 :(得分:0)

您正在isEqualToString:

中传递格式

你可以像

那样做
[txtUsername isEqualToString:[NSString stringWithFormat:@"%@",_Textuser]];