android.database.sqlite.SQLiteException:near"":语法错误

mha*_*oll 2 sqlite syntax android save

我在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 
Run Code Online (Sandbox Code Playgroud)

我的创建表

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

每当我点击添加按钮时,都会触发此错误.

Gre*_*lli 7

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

容易混淆.你只需要一个紧密的括号.

建议:

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);
Run Code Online (Sandbox Code Playgroud)

如果你建立你这样的表,我个人认为它使语句更容易阅读的东西像SQL语法,然后您可以稍后绑定数据.