我正在创建一个数据库并删除它,在我的android htc mobile sqlite数据库中添加注册表没有任何问题。在android中创建数据库
但现在,数据库每次的最后删除后,我想创建一个新的我得到一个SQLite的例外,说我“无法打开数据库文件”具有下列数据:
的serialVersionUID(RuntimeException的)= -7034897190745766939
原因= SQLiteException(ID = 830058513528)
原因= SQLiteException(ID = 830058513528)
detailMessage = “无法打开数据库文件”(ID = 830058513560) stackState =(ID = 830058513672)
stackTrace = n ULL
这是我的代码来创建数据库:
private static String DB_PATH = "/data/data/Android.Applications/databases/testdatabase.db";
public void OpenDataBase(){
SQLiteDatabase ApplicationDB = null;
//Si existe la base de datos
if(checkDataBase())
{
//Open readonlymode
String myPath = DB_PATH;
//open database as readwrite mode
ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}
else
{
try
{
String myPath = DB_PATH ;
ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
CreateTables();
//create all the necessary tables
System.out.println("DataBASE CREATED");
}
catch(SQLiteException e)
{
System.out.println("SQL LiteException"+ e.getMessage());
}
}
}
private boolean checkDataBase(){
try{
String myPath = DB_PATH;
ApplicationDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}catch(SQLiteException e){
//database does't exist yet.
}
if(ApplicationDB != null){
ApplicationDB.close();
}
return ApplicationDB != null ? true : false;
}
这是删除数据库
public boolean DeleteDatabase()
{
boolean wasdeleted;
try
{
File file=new File(DB_PATH);
wasdeleted=file.delete();
}
catch(SecurityException e)
{
wasdeleted=false;
}
return wasdeleted;
}
能给我一只手的代码?即时通讯stucked在这里,导致此代码工作几个小时前...
在此先感谢。 最好的问候。 何塞。
嗨, 当前,我展示的代码是扩展到SQLiteOpenHelper类。 谢谢。 此致敬礼。 何塞。 – Sosi 2010-01-29 16:14:07
SQLiteOpenHelper子类应该看起来完全不像你发布的东西。例如,您不要在SQLiteOpenHelper中打开自己的数据库 - SQLiteDatabase对象作为onCreate()和onUpgrade()的参数提供给您。 – CommonsWare 2010-01-30 01:54:29