0

私は SKDatabase を使用しており、API の SKDatabase を使用してアクセスしています。

初めて辞書をテーブルに正常に挿入できましたが、2回目以降は問題に直面しています。

forループを介して複数の辞書を挿入しているときに、最初の値を何度も書き換えて、新しい値を書き込むことを許可しません。

一方、テーブルに単一の辞書を挿入していた他のテーブルの辞書を許可しています。

ここにいくつかのコードを配置しています。

for (int i = 0; i < [_contentArray count]; i++)
            {
                NSMutableDictionary *dictionary = [_contentArray objectAtIndex:i];
                [[PBDB instance].db insertDictionary:dictionary forTable:@"Daily"];
                NSLog(@"%@",dictionary);
            }

コンソールでは正しい値を出力していますが、データベースでは元の値ではなく、初めて入力した値のみを追加します。

前もって感謝します。

4

3 に答える 3

0

iOS SDK用のskdatabeseファイルをダウンロード

https://www.dropbox.com/s/zhw1x8mgyeatkvb/Skdatabase.zip?dl=0

于 2015-09-14T06:18:43.190 に答える
0
* Create object in appdelegate.h

    sk=[[SKDatabase alloc]init];
    NSString *db=@"db_name.sqlite";
    [sk initWithDynamicFile:db];

#pragma mark *** insert data

 NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
            [dict setObject:_txt_fname.text forKey:@"first_name"];
            [dict setObject:_txt_email.text forKey:@"email"];
            [app.sk insertDictionary:dict 
forTable:@"table_name"];//insert data into Database

#pragma mark :::Select Query

    NSString *queryString = [NSString stringWithFormat:@"select rowid,* from register_table"];
    arr_name=(NSMutableArray *)[app.sk lookupAllForSQL:queryString];
    NSLog(@"%@",arr_name);


#pragma mark *** Update data

    NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
        [dict setObject:_txt_fname.text forKey:@"first_name"];
        [dict setObject:_txt_email.text forKey:@"email"];
        [app.sk updateDictionary:dict forTable:@"table_name" where:[NSString stringWithFormat:@"rowid=%@",row_id]];
于 2015-09-14T08:19:58.163 に答える
0

db インスタンスをチャージするのを忘れていたのかもしれません。

[[PBDB instance] chargeWithFileName:@"dbname.sqlitedb"];
于 2012-10-29T14:51:45.810 に答える