如果退出在Android中的SQlite数据库上不起作用,则删除表
我在数据库上有一个SQLite数据库,我从PHP服务器上存储该数据库,我在CRET数据库中添加新值,如果我在PHP数据库中添加新值,它会出现在我的android设备上,但是 我的问题 当我向服务器数据库中删除一个值时,在我的设备上,不从sqlite数据库中删除,仅当我从php数据库中删除值时,数据库不会更新,但当我添加值时,“是”起作用 编码DDBB如果退出在Android中的SQlite数据库上不起作用,则删除表,android,database,sqlite,Android,Database,Sqlite,我在数据库上有一个SQLite数据库,我从PHP服务器上存储该数据库,我在CRET数据库中添加新值,如果我在PHP数据库中添加新值,它会出现在我的android设备上,但是 我的问题 当我向服务器数据库中删除一个值时,在我的设备上,不从sqlite数据库中删除,仅当我从php数据库中删除值时,数据库不会更新,但当我添加值时,“是”起作用 编码DDBB public class BBDD extends SQLiteOpenHelper { private static final Str
public class BBDD extends SQLiteOpenHelper
{
private static final String KEY_ID = "id";
String crear = "CREATE TABLE types(KEY_ID INTEGER PRIMARY KEY," +
"value TEXT) ";
public BBDD (Context contexto, String nombre, CursorFactory factory,
int version)
{
super(contexto, nombre, factory, version);
}
public void onCreate (SQLiteDatabase db)
{
db.execSQL(crear);
}
public void onUpgrade (SQLiteDatabase db, int versionAnt, int versionNue)
{
db.execSQL("DROP TABLE IF EXISTS types");
db.execSQL(crear);
}
如果退出,为什么不工作删除表格
?
有什么建议吗
编辑(在我称为BBDD.JAVA的活动中)
//声明
公共BBDD类型;
//.........
尝试
{
JSONObject jresponse=新的JSONObject(ResponseBy);
映射类型=新的HashMap();
迭代器迭代器=jresponse.keys();
while(iterator.hasNext())
{
字符串idType=iterator.next();
String nametype=(String)jresponse.get(idType);
tipos.put(idType、nametype);
//保存在数据库上
类型=新BBDD(SplashScreen.this,“BBDD”,null,1);
SQLiteDatabase db=types.getWritableDatabase();
registro=新的ContentValues();
registro.put(“KEY_ID”,idType);
寄存器put(“值”,名称类型);
if(db.insert(“types”、null、registro)!=-1)
{
db.close();
}
其他的
{
}
}
}捕获(JSONException e)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}
当您发布应用程序的新版本时,onUpgrade
调用用于管理数据库架构。
这与将数据与服务器同步无关
如果您需要更新或删除行,则必须通过调用或手动执行此操作。1-它是
存在
,而不是退出
2-您正在使用错误的id列名创建表:
"CREATE TABLE types(KEY_ID INTEGER PRIMARY KEY," +
"value TEXT) ";
您想要的是:
"CREATE TABLE types(" + KEY_ID + " INTEGER PRIMARY KEY," +
"value TEXT) ";`
3-要启动
onUpgrade()
方法,必须增加数据库版本常量的值
,onUpgrade
与您描述的任何内容有什么关系?演示如何校准BBDD
构造函数。@Aspicas您的问题似乎很不清楚,并且仅在创建已存在的新表时才删除调用的表。请提供更多信息,以便我可以帮助您:)@a了解您需要什么信息?我想知道您的应用程序是如何通知您来自服务器的数据已被删除的?@CL.检查我编辑的问题我不知道如何使用我的代码增加数据库版本
。。你能帮我吗?你只需更改private static final int DATABASE\u VERSION=1代码>到私有静态最终int数据库_VERSION=2代码>-手动,而不是编程。
"CREATE TABLE types(" + KEY_ID + " INTEGER PRIMARY KEY," +
"value TEXT) ";`