将数据插入表中的问题 [英] Problem with inserting data into a table

查看:77
本文介绍了将数据插入表中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

sqlite3 *数据库; sqlite3_stmt *声明; NSString * dPath = [[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"UserData.sqlite"]; const char * dbpath = [dPath UTF8String]; //NSLog(@%@",dbpath); //UserArray = [[NSMutableArray alloc] init];

sqlite3 *database; sqlite3_stmt *statement; NSString *dPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"UserData.sqlite"]; const char *dbpath = [dPath UTF8String]; // NSLog(@"%@",dbpath); //UserArray = [[NSMutableArray alloc]init];

if(sqlite3_open(dbpath, &database) == SQLITE_OK)
{

    NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO User (UserName,FullName,Email,PhoneNo) VALUES (\"%@\", \"%@\", \"%@\" ,\"%@\")",txtUserName.text,txtFullName.text ,txtEmail.text , txtPhoneNo.text];

    const char *insert_stmt = [insertSQL UTF8String];

    sqlite3_prepare_v2(database, insert_stmt, -1, &statement, NULL);

    if(sqlite3_step(statement)==SQLITE_DONE) 
    {
        txtUserName.text=@"";
        txtFullName.text=@"";
        txtEmail.text=@"";
        txtPhoneNo.text=@"";
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add Record" message:@"Contact Added" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];    
        [alert show];
        [alert release];
        alert=nil;

    }
    else 
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"record" message:@"record not created" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];   
        [alert show];
        [alert release];
        alert=nil;
    }


    // Release the compiled statement from memory
    sqlite3_finalize(statement);

    sqlite3_close(database);
}

->>我正在尝试将数据插入表中.代码可以正确执行,但记录不会添加到表中.所以请帮助我或这个问题..谢谢您的答复.

->> i am trying to insert data into table. the code execute properly but the record is not added into the table. so please help me or this problem..thank's for your response.

推荐答案

尝试执行提交,因此将数据库设置为自动提交

try executing commit, so setting the db to autocommit

// COMMIT
  const char *sql2 = "COMMIT TRANSACTION";
  sqlite3_stmt *commit_statement;
  if (sqlite3_prepare_v2(database, sql2, -1, &commit_statement, NULL) != SQLITE_OK) {
    NSAssert1(0, @"Error Message: '%s'.", sqlite3_errmsg(database));
  }
  success = sqlite3_step(commit_statement);
  if (success != SQLITE_DONE) {
    NSAssert1(0, @"Error Message: '%s'.", sqlite3_errmsg(database));
  }
}

这篇关于将数据插入表中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆