如何保留登錄表中的所有行?我只能保留一行,爲什麼不是其他人呢?我使用錯誤的查詢嗎?請檢查我的代碼:iphone中的sqlite數據庫
#import "loginAppDelegate.h"
#import "global.h"
#import <sqlite3.h>
#import "logincontroller.h"
@implementation loginAppDelegate
@synthesize window;
@synthesize loginView;
//[email protected]"login.sqlite";
-(void) chekAndCreateDatabase
{
BOOL success;
//sqlite3 *[email protected]"login.sqlite";
NSFileManager *fileManager=[NSFileManager defaultManager];
NSArray *documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir =[documentPaths objectAtIndex:0];
NSString *databasePath=[documentsDir stringByAppendingPathComponent:@"login.sqlite"];
success=[fileManager fileExistsAtPath:databasePath];
if(success)return;
NSString *databasePathFromApp=[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"login.sqlite"];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
[fileManager release];
}
-(void) Data
{
[email protected]"";
[email protected]"";
sqlite3_stmt *detailStmt=nil;
//sqlite3 *databaseName;
NSArray *documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir =[documentPaths objectAtIndex:0];
NSString *databasePath=[documentsDir stringByAppendingPathComponent:@"login.sqlite"];
[self chekAndCreateDatabase];
sqlite3 *database;
if (sqlite3_open([databasePath UTF8String],&database)==SQLITE_OK) {
if (detailStmt==nil) {
const char *sql= "select *from Loginchk where uname='%?'and password='%?'";
//NSString *sql = [[NSString alloc] initWithFormat:@"SELECT * FROM Loginchk WHERE uname ='%@' and password ='%@' ",Uname.text,Password.text];
if (sqlite3_prepare_v2(database,sql,-1,&detailStmt,NULL)==SQLITE_OK) {
sqlite3_bind_text(detailStmt,1,[Gunameq UTF8String],-1,SQLITE_TRANSIENT);
sqlite3_bind_text(detailStmt,2,[Gpassq UTF8String],-1,SQLITE_TRANSIENT);
if (SQLITE_DONE!= sqlite3_step(detailStmt)) {
Guname=[NSString stringWithUTF8String:(char*)sqlite3_column_text(detailStmt,0)];
Gpass =[NSString stringWithUTF8String:(char*)sqlite3_column_text(detailStmt,1)];
NSLog(@"'%@'",Guname);
NSLog(@"'%@'",Gpass);
}
}
sqlite3_finalize(detailStmt);
}
}
sqlite3_close(database);
}
@ user692277:請編輯您的問題,這是很難理解你意思。請使用標點符號('.',',',...),並且更清楚您的代碼在做什麼以及您希望它做什麼。 – Mat 2011-04-14 09:32:23
您的意思是從Loginchk表中獲取所有行而不是一行? – 2011-04-14 09:38:08
我需要從loginchk表中的所有行,也從用戶輸入的文本驗證 – user692277 2011-04-14 10:07:54