数据未插入sqlite数据库

Sha*_*anu 0 sqlite insert ios ios7

嗨,在我的应用程序中,我有想要插入我的sqlite数据库的数据.所以我已经成功创建了数据库,但问题是它没有将数据插入数据库.

我的数据库创建代码.

 - (void)createDatabase
  {

     NSArray *directories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     NSString *doctumentsDirectory = [directories lastObject];
     self.databasePath = [[NSString alloc] initWithString:[doctumentsDirectory stringByAppendingPathComponent:@"/bp.sqlite"]];

     NSFileManager *fileManager = [NSFileManager defaultManager];

   // create DB if it does not already exists
   if (![fileManager fileExistsAtPath:self.databasePath]) {

       const char *dbPath = [self.databasePath UTF8String];

    if (sqlite3_open(dbPath, &_myDataBase) == SQLITE_OK) {

        char *errorMsg;
        const char *sql_statement = "CREATE TABLE IF NOT EXISTS br (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, COST TEXT,QUTY TEXT)";

        if (sqlite3_exec(_myDataBase, sql_statement, NULL, NULL, &errorMsg) != SQLITE_OK)    {

            [self errorCreatingTable:[NSString stringWithFormat:@"failed creating table. ERROR:%s", errorMsg]];
         }

          sqlite3_close(_myDataBase);

      } else {

         [self errorCreatingTable:@"failed openning / creating table"];
      }
   }
 }
Run Code Online (Sandbox Code Playgroud)

我的插入代码我有UIButton动作方法,我给我的插入代码.

  -(void)aMethod2:(UIButton*)sender
 {

    NSString *inr=[intarr objectAtIndex:sender.tag];
    NSLog(@"%@",inr);
    NSString *item=[self.menuarray objectAtIndex:sender.tag];
    NSLog(@"%@",item);
    NSString *cost=[self.menuarray1 objectAtIndex:sender.tag];
    NSLog(@"%@",cost);
    NSString *sql = [NSString stringWithFormat:@"INSERT INTO br ('NAME','COST','QUTY') VALUES ('%@','%@','%@')",item,cost,inr];
    NSLog(@"%@",sql);
 }
Run Code Online (Sandbox Code Playgroud)

我已经使用上面的代码获取数据并插入我的数据库,但所有传递正确的值问题是它没有插入我的数据库请告诉我如何解决这个问题我已经被困在这里很长一段时间帮助我了.

谢谢.

Raz*_*Raz 5

当我看到你的问题时,我忍不住看到一些对我来说有点奇怪的东西......那就是看到我自己的代码.感谢您使用我的stackoverflow代码片段:) 在尝试创建sqlite数据库时遇到错误'无法创建表'IOS7

无论如何,这里有一个关于如何插入的简单示例:

- (void)insertDictionaryToDataBase:(NSDictionary *)dictionary
{
    if (dictionary) {

        sqlite3_stmt *sql_statement;
        const char *dbPath = [self.databasePath UTF8String];

        if (sqlite3_open(dbPath, &_inboxDatabase) == SQLITE_OK) {

            NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO MY_TABLE_NAME (COLUMN_A, COLUMN_B, COLUMN_C) VALUES (?,?,?)"];

            const char *insertStatement = [insertSQL UTF8String];

            sqlite3_prepare_v2(_inboxDatabase, insertStatement, -1, &sql_statement, NULL);

            sqlite3_bind_text(sql_statement, 1, [dictionary[@"key1"] UTF8String], -1, SQLITE_TRANSIENT);
            sqlite3_bind_text(sql_statement, 2, [dictionary[@"key2"] UTF8String], -1, SQLITE_TRANSIENT);
            sqlite3_bind_int(sql_statement, 3, [dictionary[@"key3"] intValue]);


            if (sqlite3_step(sql_statement) == SQLITE_DONE) {

                NSLog(@"sucess!");
            }

            sqlite3_finalize(sql_statement);
            sqlite3_close(_inboxDatabase);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)