プリペアドステートメントを使用してデータを登録(insert)したいのですがうまくできません。
なお、DBは問題なく作成でき、ContentValuesを使用した動作は確認できております。
一番悩んで試行錯誤している部分は、
1._idへの値はどのように指定したらいいのか?
(定義:_id integer primary key autoincrement)
2.integer値を格納したいが、bindLongしか見つけることができない
という点です。
ご教授いただけましたら幸いです。
java
1[DB定義部] 2 3 //SQL文定義 4 String sql 5 = "Create table product (" + 6 "_id integer primary key autoincrement," + 7 "productid text not null," + 8 "name text not null," + 9 "price integer default 0)"; 10 //SQL実行 11 db.execSQL(sql); 12
java
1[insert処理部] 2 try { 3 //トランザクション制御開始 4 db.beginTransaction(); 5 6 //プリペアド用代入 7 _productid = productid.getText().toString(); 8 _name = name.getText().toString(); 9 _price = Integer.parseInt(price.getText().toString()); 10 11 //プリペアドステートメント 12 String sqlInsert = "INSERT INTO product (_id,productid,name,price) VALUES (?,?,?,?)"; 13 SQLiteStatement stmt; 14 stmt = db.compileStatement(sqlInsert); 15 16 17 18 //変数のバインド 19 stmt.bindLong(1, _idIdx); 20 stmt.bindString(2, _productid); 21 stmt.bindString(3, _name); 22 stmt.bindLong(4, _price); 23 24 stmt.executeInsert(); 25 26 //トランザクション制御修了 27 db.endTransaction(); 28
あなたの回答
tips
プレビュー