Android SqLite数据库程序中未发现此类表错误
我创建了一个SqLite数据库程序,但每次它都显示以下错误 没有找到这样的表 请让我们知道为什么会显示错误Android SqLite数据库程序中未发现此类表错误,android,sqlite,Android,Sqlite,我创建了一个SqLite数据库程序,但每次它都显示以下错误 没有找到这样的表 请让我们知道为什么会显示错误 public static final String TOWN_ID="_id"; public static final String TOWN_NAME="name"; public static final String DISTT_ID="disttidd"; private static final String TAG="DbaAdapter"; private static
public static final String TOWN_ID="_id";
public static final String TOWN_NAME="name";
public static final String DISTT_ID="disttidd";
private static final String TAG="DbaAdapter";
private static final String DATABASE_NAME="mydb";
private static final String DATABASE_TABLE="tableetown";
private static final int DATABASE_VERSION=2;
private static final String DATABASE_CREATE="create table "+DATABASE_TABLE+"("+TOWN_ID+" int primary key ,"+TOWN_NAME+" text not null,"+DISTT_ID+" text not null)";
private final Context context;
private DatabaseHelper DBhelper;
private static SQLiteDatabase db;
public tableTown(Context ctx){
this.context=ctx;
DBhelper=new DatabaseHelper(context);
}
/* db=DBhelper.getWritableDatabase();
return this;
*
*/
private static class DatabaseHelper extends SQLiteOpenHelper{
DatabaseHelper(Context context){
super(context,DATABASE_NAME,null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(TAG,"Upgrading database from version " + oldVersion +" to "+ newVersion+", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS tableTown");
onCreate(db);
}
}
public tableTown open() throws SQLException {
db=DBhelper.getWritableDatabase();
return this;
// TODO Auto-generated method stub
}
public Cursor fetchAllDistt() {
// TODO Auto-generated method stub
Cursor mCursor = db.query(DATABASE_TABLE, new String[] {TOWN_ID,TOWN_NAME,DISTT_ID}, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public void close() {
// TODO Auto-generated method stub
DBhelper.close();
}
}
试试这个:
String DATABASE_CREATE="create table "+DATABASE_TABLE+"("+TOWN_ID+" integer primary key ,"+TOWN_NAME+" text not null,"+DISTT_ID+" text not null);";
将“;”放在数据库\创建字符串的末尾
看看这个:
private static final String DATABASE_TABLE="tableetown";
这是:
db.execSQL("DROP TABLE IF EXISTS tableTown");
表名不同 在您的“创建”中,写下以下内容:
String DATABASE_CREATE = "CREATE TABLE " + DATABASE_TABLE + "("
+ TOWN_ID + " INTEGER PRIMARY KEY," + TOWN_NAME + " TEXT NOT NULL,"
+ DISTT_ID + " TEXT NOT NULL" + " )";
db.execSQL(DATABASE_CREATE);
我用它来处理这种情况
在onCreate中放置断点,确保执行该行。
然后,切换到DDMS视图并使用插件找出问题所在
希望这有帮助,Yaron如果你的应用程序在onUpgrade中崩溃,那么Volodymyr Yatsykiv会回答你的问题。试着把它改成
@覆盖
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion)
{
db.execSQL(“如果存在删除表”+数据库_表);
onCreate(db);
}
并确保使用数据库_表而不是硬编码表名
请提供完整的日志,如果它仍然崩溃
最好的祝愿。你能提交logcat输出吗?也发布你的logcat。像这样尝试
“创建表”+数据库表+”(“+TOWN\u ID+”整数主键,“+TOWN\u NAME+”文本不为空,“+DISTT\u ID+”文本不为空)代码>在字段的数据类型之前添加空格。它显示相同的错误,没有这样的错误table@nitesh:在获取数据之前,您是否在表(1)中插入了任何数据没有这样的表:TableTown againtry重新安装您的应用程序我正在开发项目,那么如何重新安装我的应用程序设置-应用程序-管理应用程序-选择您的应用程序-卸载它。然后再次将您的项目构建(编译)到emulator或phone。您可以更改数据库版本,但表名不同!