Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Sqlite-创建表并向其中插入数据_Java_Android_Sqlite - Fatal编程技术网

Java Android Sqlite-创建表并向其中插入数据

Java Android Sqlite-创建表并向其中插入数据,java,android,sqlite,Java,Android,Sqlite,我从下面的代码中得到错误。我正在从contact.getSellingPrice()获取值,但由于出现错误,无法保存该值。任何帮助都是很大的帮助 查询: public void onCreate(SQLiteDatabase db) { String CREATE_ITEMS = "CREATE TABLE " + TABLE_ITEMS + "(" + KEY_ID + " TEXT," + KEY_NAME + " TEXT," + KEY_PRICE +

我从下面的代码中得到错误。我正在从
contact.getSellingPrice()
获取值,但由于出现错误,无法保存该值。任何帮助都是很大的帮助

查询:

public void onCreate(SQLiteDatabase db) {

    String CREATE_ITEMS = "CREATE TABLE " + TABLE_ITEMS + "(" + KEY_ID
            + " TEXT," + KEY_NAME + " TEXT," + KEY_PRICE + " TEXT," + KEY_ITEM_ID + " TEXT" +")";

    try {
        db.execSQL(CREATE_ITEMS);
        //db.execSQL(CREATE_PATH);
    } catch (SQLException e) {
        e.printStackTrace();
    }

}
数据库处理程序:

private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_IMAGE_PATH = "itemimagepath";
private static final String KEY_PRICE = "sellingprice";
private static final String KEY_ITEM_ID = "itemid";

void addItems(Menu contact, String TABLE_NAME) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(KEY_ID, contact.getID()); // Contact Name
    values.put(KEY_NAME, contact.getName());
    values.put(KEY_PRICE, contact.getSellingPrice());
    values.put(KEY_ITEM_ID, contact.getItemId());

    // Inserting Row
        db.insert(TABLE_NAME, null, values);
        db.close(); // Closing database connection

}
日志:

07-04 17:01:48.033: E/SQLiteLog(9324): (1) table items has no column named itemid
07-04 17:01:48.037: E/SQLiteDatabase(9324): Error inserting id=BUFFET LUNCH1 itemid=14 sellingprice=370.00 name=BUFFET LUNCH
07-04 17:01:48.037: E/SQLiteDatabase(9324): android.database.sqlite.SQLiteException: table items has no column named itemid (code 1): , while compiling: INSERT INTO items(id,itemid,sellingprice,name) VALUES (?,?,?,?)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at com.jinisys.restoplusordering.DatabaseHandler.addItems(DatabaseHandler.java:140)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at com.jinisys.restoplusordering.LoadItemsActivity$LoadAllProducts.doInBackground(LoadItemsActivity.java:299)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at com.jinisys.restoplusordering.LoadItemsActivity$LoadAllProducts.doInBackground(LoadItemsActivity.java:1)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-04 17:01:48.037: E/SQLiteDatabase(9324):     at java.lang.Thread.run(Thread.java:856)

07-04 17:01:48.033:E/SQLiteLog(9324):(1)表项没有名为itemid的列
07-04 17:01:48.037:E/SQLiteDatabase(9324):插入id=BUFFET午餐1 itemid=14 sellingprice=370.00 name=BUFFET午餐时出错

07-04 17:01:48.037:E/SQLiteDatabase(9324):android.database.sqlite.SQLiteException:表项没有名为itemid(代码1)的列,编译时:插入项(id,itemid,sellingprice,name)值(?,,,,?) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteConnection.nativepreparest陈述(本机方法) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteConnection.acquiredpreparedstatement(SQLiteConnection.java:882) 07-04 17:01:48.037:E/SQLiteDatabase(9324):在android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 07-04 17:01:48.037:E/SQLiteDatabase(9324):在android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于com.jinisys.restoplusordering.DatabaseHandler.addItems(DatabaseHandler.java:140) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于com.jinisys.restoplusordering.LoadItemsActivity$LoadAllProducts.doInBackground(LoadItemsActivity.java:299) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于com.jinisys.restoplusordering.LoadItemsActivity$LoadAllProducts.doInBackground(LoadItemsActivity.java:1) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.os.AsyncTask$2.call(AsyncTask.java:287) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于java.util.concurrent.FutureTask.run(FutureTask.java:137) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 07-04 17:01:48.037:E/SQLiteDatabase(9324):位于java.lang.Thread.run(Thread.java:856)
如果将数据库保存在外部SD卡上,请将其删除或卸载应用程序并检查。

是否确实要在表中创建名为
itemid
的列?“表项没有名为itemid的列”是否确定这是该列的名称???是,我将添加一些内容。列名应该是一致的,因为它似乎使用相同的定义。您正在调用“db.execSQL(创建_项);”在助手的onCreate方法中?在创建一次表之后是否添加了itemId列?在这种情况下,请确保您已经实现了onUpgrade,并且db version是递增的。