2012-02-18 78 views
0

我想在单击按钮时在SQLite表中登录数据时插入数据,问题是当我点击注册按钮时数据存储在变量中而不是数据库表中,当我尝试静态传递数据将被插入的值,但当我试图动态存储数据,然后不工作。在sqlite表中插入数据动态无效

这是我的代码。请仔细阅读并帮助解决此问题。

NSString *path; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask ,YES); 

path = [paths objectAtIndex:0]; 

dbName = [[NSString alloc] initWithString:[path stringByAppendingPathComponent:@"mnc.sqlite"]]; 

NSFileManager *fileMgr = [NSFileManager defaultManager]; 

if([fileMgr fileExistsAtPath:dbName]== NO) 
{ 
    const char *dbPath = [dbName UTF8String]; 

    if (sqlite3_open(dbPath,&connectionDB)==SQLITE_OK) 
    { 
    char *errMsg; 
    const char *sql_stmt = " create table if not exists login(user_name text ,password text)"; 

    if (sqlite3_exec(connectionDB,sql_stmt,NULL,NULL,&errMsg)) 
    { 
     printf("\n fail to create table "); 
    } 

    sqlite3_close(connectionDB); 
    } 
    else 
    { 
    NSLog(@"fail to open create database"); 
    } 
} 

[fileMgr release]; 

if(sqlite3_prepare_v2(connectionDB, query ,-1, &statment,NULL) == SQLITE_OK) 
{ 
    sqlite3_bind_text(statment,1,"cc", -1,SQLITE_TRANSIENT); 
    sqlite3_bind_text(statment,2,"sa",-1,SQLITE_TRANSIENT); 
    NSLog(@"aadd"); 
} 

if (sqlite3_step(statment)== SQLITE_DONE) 
{ 
    NSLog(@"This should be real error checking!"); 
    sqlite3_finalize(statment); 
} 

回答

0

使用sqlite是相当复杂的,这就是为什么我使用fmdb这将简化工作。

这是周围的SQLite

希望一个Objective-C包装这会有所帮助。