Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果退出在Android中的SQlite数据库上不起作用,则删除表_Android_Database_Sqlite - Fatal编程技术网

如果退出在Android中的SQlite数据库上不起作用,则删除表

如果退出在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

我在数据库上有一个SQLite数据库,我从PHP服务器上存储该数据库,我在CRET数据库中添加新值,如果我在PHP数据库中添加新值,它会出现在我的android设备上,但是

我的问题

当我向服务器数据库中删除一个值时,在我的设备上,不从sqlite数据库中删除,仅当我从php数据库中删除值时,数据库不会更新,但当我添加值时,“是”起作用

编码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);

    }
如果退出,为什么不工作
删除表格

有什么建议吗

编辑(在我称为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) ";`