我在数据库上有一个SQLite数据库,我从PHP Server存储该数据库,我克里特数据库,如果我向PHP数据库添加新值,它会出现在我的Android设备上,但是......
我的问题
当我删除一个值到Server数据库时,在我的设备上没有从sqlite数据库中删除,只有当我从php数据库中删除值时数据库才会更新,但是当我添加值时,yes是有效的...
代码DDBB
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);
}
为什么不起作用DROP TABLE IF EXITS
?
有什么建议吗?
编辑(活动我打电话给BBDD.JAVA)
//declare
public BBDD types;
//.........
try
{
JSONObject jresponse = new JSONObject(responseBody);
Map<String, String> types = new HashMap<String, String>();
Iterator<String> iterator = jresponse.keys();
while (iterator.hasNext())
{
String idType = iterator.next();
String nametype = (String) jresponse.get(idType);
tipos.put(idType, nametype );
//save on database
types = new BBDD(SplashScreen.this, "BBDD", null, 1);
SQLiteDatabase db= types.getWritableDatabase();
registro = new ContentValues();
registro.put("KEY_ID", idType);
registro.put("value", nametype );
if (db.insert("types", null, registro) != -1)
{
db.close();
}
else
{
}
}
} catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
答案 1 :(得分:0)
1 - 这是EXISTS
,而不是EXITS
2 - 您正在使用错误的id列名创建表:
"CREATE TABLE types(KEY_ID INTEGER PRIMARY KEY," +
"value TEXT) ";
你想要这个,而不是:
"CREATE TABLE types(" + KEY_ID + " INTEGER PRIMARY KEY," +
"value TEXT) ";`
3 - 要激活onUpgrade()
方法,您必须{{1>} DATABASE_VERSION 常量