Java SQLiteException无此类表:编译时的ItemTable:Select_id,。。。。从ItemTable

Java SQLiteException无此类表:编译时的ItemTable:Select_id,。。。。从ItemTable,java,android,listview,android-sqlite,Java,Android,Listview,Android Sqlite,我的日志中出现这个错误已经有一段时间了。我尝试了很多事情,比如清除我应用程序中的数据,取消安装并重新安装我的应用程序,升级我的DB版本,我甚至删除了我的项目并创建了一个新项目,但每次运行我的应用程序时,我总是会遇到这个错误。谁能帮帮我吗 我要做的是,在“活动”中有两个按钮“添加项目”和“查看项目”,每次单击“查看项目”按钮时,我都会出现此错误 当点击view按钮时,它必须在listview中显示我保存在数据库中的数据,但这不会发生,因为我的应用程序总是停止,而这会显示在我的logcat中 这是我

我的日志中出现这个错误已经有一段时间了。我尝试了很多事情,比如清除我应用程序中的数据,取消安装并重新安装我的应用程序,升级我的DB版本,我甚至删除了我的项目并创建了一个新项目,但每次运行我的应用程序时,我总是会遇到这个错误。谁能帮帮我吗

我要做的是,在“活动”中有两个按钮“添加项目”和“查看项目”,每次单击“查看项目”按钮时,我都会出现此错误

当点击view按钮时,它必须在listview中显示我保存在数据库中的数据,但这不会发生,因为我的应用程序总是停止,而这会显示在我的logcat中

这是我的日志:

02-09 05:24:23.850: E/AndroidRuntime(8037):     at com.system.inventorysystem.ViewProductItem.onCreate(ViewProductItem.java:46)
02-09 05:46:59.810: E/AndroidRuntime(13150): FATAL EXCEPTION: main
02-09 05:46:59.810: E/AndroidRuntime(13150): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.system.inventorysystem/com.system.inventorysystem.ViewProductItem}: android.database.sqlite.SQLiteException: no such table: ItemTable: , while compiling: SELECT _id, ItemDescription, ItemQuantity, ItemUnit, ItemPrice FROM ItemTable
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread.access$600(ActivityThread.java:122)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.os.Looper.loop(Looper.java:137)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread.main(ActivityThread.java:4340)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at java.lang.reflect.Method.invokeNative(Native Method)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at java.lang.reflect.Method.invoke(Method.java:511)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at dalvik.system.NativeStart.main(Native Method)
02-09 05:46:59.810: E/AndroidRuntime(13150): Caused by: android.database.sqlite.SQLiteException: no such table: ItemTable: , while compiling: SELECT _id, ItemDescription, ItemQuantity, ItemUnit, ItemPrice FROM ItemTable
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:127)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:94)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:53)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1449)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1405)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1485)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at com.system.inventorysystem.DBAdapter.getAllItemProduct(DBAdapter.java:108)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at com.system.inventorysystem.ViewProductItem.onCreate(ViewProductItem.java:48)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.Activity.performCreate(Activity.java:4465)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-09 05:46:59.810: E/AndroidRuntime(13150):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
02-09 05:46:59.810: E/AndroidRuntime(13150):    ... 11 more
这是我的java类,我试图从我的数据库在listview中显示我的数据

ViewItemProduct.java

package com.system.inventorysystem;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class ViewProductItem extends Activity implements View.OnClickListener{

DBAdapter ourDatabase;
Typeface customFont;
TextView view_item_txt;
Button delete,update;
ListView myList;

@SuppressLint("NewApi") @Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewproductitem);

    customFont = Typeface.createFromAsset(getAssets(), "fonts/EraserRegular.ttf");

    view_item_txt = (TextView)findViewById(R.id.view_item_tv);
    view_item_txt.setTypeface(customFont);

    delete = (Button)findViewById(R.id.view_delete_button);
    delete.setTypeface(customFont);
    delete.setOnClickListener(this);

    update = (Button)findViewById(R.id.view_update_button);
    update.setTypeface(customFont);
    update.setOnClickListener(this);

    openDB();
    ourDatabase.open();

    final Cursor c = ourDatabase.getAllItemProduct();
    String[] ViewItemsNames = new String[] {DBAdapter.KEY_ItemID,DBAdapter.KEY_ITEM_DESCRIPTION,DBAdapter.KEY_ITEM_QUANTITY,DBAdapter.KEY_ITEM_UNIT,DBAdapter.KEY_ITEM_PRICE};
    int[] ViewItemsID = new int[] {R.id.view_item_id,R.id.view_item_desc,R.id.view_item_quantity,R.id.view_item_unit,R.id.view_item_price};
    final SimpleCursorAdapter myCursorAdapter;
    myCursorAdapter = new SimpleCursorAdapter(getBaseContext(),R.layout.viewproduct_items, c, ViewItemsNames, ViewItemsID,0);
    myList = (ListView)findViewById(R.id.view_item_listview);
    myList.setAdapter(myCursorAdapter);
}

private void openDB() {
    ourDatabase = new DBAdapter(this);
    ourDatabase.open();
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId())
    {
    case R.id.view_delete_button:
        Intent openDeleteItem = new Intent(this,DeleteProductItem.class);
        this.startActivity(openDeleteItem);
        break;
    case R.id.view_update_button:
        Intent openUpdateItem = new Intent(this,UpdateProductItem.class);
        this.startActivity(openUpdateItem);
        break;
    }
}
}
这是我的xml文件

viewitemproduct.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/greenboard_background" >

<TextView
    android:id="@+id/view_item_tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="45dp"
    android:text="@string/view_item"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="35sp" />

<ListView
    android:id="@+id/view_item_listview"
    android:layout_width="543dp"
    android:layout_height="695dp"
    android:layout_below="@+id/view_item_tv"
    android:layout_centerHorizontal="true" >
</ListView>

<Button
    android:id="@+id/view_delete_button"
    android:layout_width="260dp"
    android:layout_height="70dp"
    android:layout_alignRight="@+id/view_item_listview"
    android:layout_below="@+id/view_item_listview"
    android:layout_marginTop="10dp"
    android:text="@string/delete_item"
    android:textSize="40sp" />

<Button
    android:id="@+id/view_update_button"
    android:layout_width="260dp"
    android:layout_height="70dp"
    android:layout_alignBaseline="@+id/view_delete_button"
    android:layout_alignBottom="@+id/view_delete_button"
    android:layout_alignLeft="@+id/view_item_listview"
    android:text="@string/update_item"
    android:textSize="40sp" />

</RelativeLayout>
这是我的Listview中项目的视图

viewproduct_items.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/view_item_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_alignParentTop="true"
    android:text="@string/itemno"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="@string/item_desc"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_quantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_below="@+id/view_item_desc"
    android:text="@string/item_quantity"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_unit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/view_item_quantity"
    android:layout_alignBottom="@+id/view_item_quantity"
    android:layout_centerHorizontal="true"
    android:text="@string/item_unit"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_below="@+id/view_item_unit"
    android:text="@string/item_price"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

</RelativeLayout>

create表中存在语法问题。日期/时间不是有效的列名-请删除/

由于SQLiteOpenHelper onCreate中的try-catch,语法问题被隐藏。如果出现问题,onCreate必须抛出异常。否则SQLiteOpenHelper会认为一切正常


解决上述两个问题后,请卸载应用程序/清除其数据或升级数据库版本,以便再次调用onCreate。

create table语句的格式不正确

表列名中不允许使用特殊符号 因此,在表列名中删除/从日期/时间

这将解决问题


实际问题是由于此问题未创建表,并且由于try-catch块而无法引发异常。

谢谢您,我可以问更多吗?我的一项活动有问题。我要做的是在我的数据库中插入一个价格,例如10.00,但是当我试图检索数据时,它只返回10,没有小数点。你能帮我吗?谢谢你,我能问更多吗?我的一项活动有问题。我要做的是在我的数据库中插入一个价格,例如10.00,但是当我试图检索数据时,它只返回10,没有小数点。你能帮我吗@Laaltoi如果你有一个新问题,把它作为一个新问题发布,而不是在评论中扩展旧问题。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/view_item_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_alignParentTop="true"
    android:text="@string/itemno"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="@string/item_desc"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_quantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_below="@+id/view_item_desc"
    android:text="@string/item_quantity"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_unit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/view_item_quantity"
    android:layout_alignBottom="@+id/view_item_quantity"
    android:layout_centerHorizontal="true"
    android:text="@string/item_unit"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

<TextView
    android:id="@+id/view_item_price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_below="@+id/view_item_unit"
    android:text="@string/item_price"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="30sp" />

</RelativeLayout>