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