2

SQLite でレコードを追加する際に問題が発生しました。

これはエラーです:

09-18 17:47:47.586: E/AndroidRuntime(1039):
   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.capstone.pinoygoodies/com.capstone.pinoygoodies.GroceryView}:
   android.database.sqlite.SQLiteException: near " ":
   syntax error:
   CREATE TABLE tblItem 
                 (_id INTEGER PRIMARY KEY AUTOINCREMENT,
                  grocery_item TEXT NOT NULL,
                  grocery_qty TEXT NOT NULL 

私のCREATE TABLE

db.execSQL("CREATE TABLE " + DATABASE_TABLE + "(" +
KEY_ITEMID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ITEM + " TEXT NOT NULL, " + 
KEY_QTY + " TEXT NOT NULL ");

追加ボタンを押すたびに、このエラーが発生します。

4

5 に答える 5

7
db.execSQL("
    CREATE TABLE " + DATABASE_TABLE + "(" +
    KEY_ITEMID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
    KEY_ITEM + " TEXT NOT NULL, " + 
    KEY_QTY + " TEXT NOT NULL );"
);

混同しやすいものがあります。閉じ括弧が必要なだけです。

提案:

String createStatement = 
    String.format("CREATE TABLE %s ( %s INTEGER PRIMARY KEY
                   AUTOINCREMENT, %s TEXT NOT NULL, 
                   %s TEXT NOT NULL);",
                        DATABASE_TABLE,
                        KEY_ITEMID,
                        KEY_ITEM,
                        KEY_QTY);

このようにテーブルを作成すると、SQL 構文などのステートメントが読みやすくなり、後でデータをバインドできるようになると個人的には思います。

于 2012-09-19T05:11:44.143 に答える
3

Create Table Query の末尾に ")" を追加します。

于 2012-09-19T04:56:57.987 に答える
1

データの取得ではなく、テーブルの作成によってエラーがスローされます。

create table sqlステートメントを確認してください

于 2012-09-19T04:52:08.113 に答える
0
db.execSQL("CREATE TABLE " + DATABASE_TABLE + "(" +
KEY_ITEMID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_ITEM + " TEXT NOT NULL, " + 
KEY_QTY + " TEXT NOT NULL )");

create テーブルの最後に ")" を追加する必要があります。

クエリを挿入

    String qty = "QTY";
    String item = "ITEM";
    String sql = "INSERT or replace INTO "+ DATABASE_TABLE +" (qty, item) VALUES('"+ qty +"','"+ item + "')";
    db.execSQL(sql);
于 2012-09-19T05:12:09.063 に答える
0

Create Table Syntax の右括弧がありません。次のように修正してください。

CREATE TABLE tblItem 
                 (_id INTEGER PRIMARY KEY AUTOINCREMENT,
                  grocery_item TEXT NOT NULL,
                  grocery_qty TEXT NOT NULL ); 
于 2012-09-19T05:11:55.843 に答える