質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

FMDB

FMDBは、SQLiteをObjective-Cから扱いやすくするためのラッパーライブラリです。GitHubで公開されており、SQLite暗号化ライブラリのSQLCipherにも対応。Swiftの利用も可能です。

Q&A

解決済

1回答

2024閲覧

FMDBで作成したTABLEにTextFieldで入力した値をInsertしたい

syoshinsya

総合スコア35

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

FMDB

FMDBは、SQLiteをObjective-Cから扱いやすくするためのラッパーライブラリです。GitHubで公開されており、SQLite暗号化ライブラリのSQLCipherにも対応。Swiftの利用も可能です。

0グッド

0クリップ

投稿2016/08/04 06:28

ViewController.m

#import "ViewController.h" @interface ViewController () { NSString *todoTitleText; } @property NSString *db_path; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // パスとDBファイル名を指定 NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); NSString *dir = [paths objectAtIndex:0]; NSString *db_path = [dir stringByAppendingPathComponent:@"tr_todo.db"]; FMDatabase *db = [FMDatabase databaseWithPath:db_path]; // DBのパスを表示 NSLog(@"db path : %@",db_path); // テーブルを作成 NSString *sql = @"CREATE TABLE IF NOT EXISTS tr_todo (todo_id INTEGER PRIMARY KEY , todo_title TEXT ,todo_contents , created , modified , limit_date ); "; [db open]; // SQLを実行 [db executeUpdate:sql]; [db close]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)titleReturnKey:(id)sender { todoTitleText = self.titleField.text; NSLog(@"%@",todoTitleText); FMDatabase *db = [FMDatabase databaseWithPath:_db_path]; NSString *sql = @"INSERT INTO tablename (tr_todo) VALUES (?)"; [db open]; [db executeUpdate:sql, @"入れるデータ"]; [db close]; } @end

実現したいこと

※ TextFieldで値を入力後returnキータップでDBにInsertしたい

問題点

※DBのPathが取得できない
※入れるデータのところにTextFilidの値を指定するにはどうしたらいいでしょうか。

どなたかご教示いただけましたら幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

- (FMDatabase *)createWithDatabaseSetteing { NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); NSString *dir = [paths objectAtIndex:0]; NSString *db_path = [dir stringByAppendingPathComponent:@"tr_todo.db"]; return [FMDatabase databaseWithPath:db_path]; } - (IBAction)titleReturnKey:(id)sender { todoTitleText = self.titleField.text; FMDatabase *db = [self createWithDatabaseSetteing]; NSString *sql = @"INSERT INTO tr_todo(todo_title) VALUES (?)"; [db open]; [db executeUpdate:sql, todoTitleText]; [db close]; }

上記の方法で自己解決いたしました。

投稿2016/08/04 07:37

syoshinsya

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問