Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
Can';t更新sqlite android_Android_Sqlite_Delete Row - Fatal编程技术网

Can';t更新sqlite android

Can';t更新sqlite android,android,sqlite,delete-row,Android,Sqlite,Delete Row,我正在写我的应用程序,我想有一个功能,用户长时间点击该项目,然后他们可以选择编辑或删除该项目。删除功能工作正常。但是当他们选择编辑,而不是编辑和保存,它只是删除该项目。我已经工作了几天了,但还是找不到问题所在 我的数据库类: public class DBAdapter { private static final String TAG = "DBAdapter"; public static final String KEY_ROWID = "_id"; publi

我正在写我的应用程序,我想有一个功能,用户长时间点击该项目,然后他们可以选择编辑或删除该项目。删除功能工作正常。但是当他们选择编辑,而不是编辑和保存,它只是删除该项目。我已经工作了几天了,但还是找不到问题所在

我的数据库类:

public class DBAdapter {

    private static final String TAG = "DBAdapter";

    public static final String KEY_ROWID = "_id";
    public static final int COL_ROWID = 0;

    public static final String KEY_ACCOUNT = "account";
    public static final String KEY_DATE = "date";
    public static final String KEY_NOTE = "note";
    public static final String KEY_ENTRY = "entry";
    public static final String KEY_OTHERS = "others";

    public static final int COL_ACCOUNT = 1;
    public static final int COL_DATE = 2;
    public static final int COL_NOTE = 3;
    public static final int COL_ENTRY = 4;
    public static final int COL_OTHERS = 5;

    public static final String[] ALL_KEYS = new String[] {KEY_ROWID, KEY_ACCOUNT, KEY_DATE, KEY_NOTE, KEY_ENTRY, KEY_OTHERS};

    public static final String DATABASE_NAME = "MyDb";
    public static final String DATABASE_TABLE = "mainTable";

    public static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE_SQL =
            "create table " + DATABASE_TABLE
                    + " (" + KEY_ROWID + " integer primary key autoincrement, "

                    + KEY_ACCOUNT + " text, "
                    + KEY_DATE + " text not null, "
                    + KEY_NOTE + " text, "
                    + KEY_ENTRY + " real not null, "
                    + KEY_OTHERS + " text "
                    + ");";

    private final Context context;

    private DatabaseHelper myDBHelper;
    private SQLiteDatabase db;

    public DBAdapter open() {
        db = myDBHelper.getWritableDatabase();
        return this;
    }

    public long insertRow(String account, String date, String note, double entry, String others) {

        ContentValues values = new ContentValues();
        values.put(KEY_ACCOUNT, account);
        values.put(KEY_DATE, date);
        values.put(KEY_NOTE, note);
        values.put(KEY_ENTRY, entry);
        values.put(KEY_OTHERS, others);

        return db.insert(DATABASE_TABLE, null, values);
    }

    public boolean deleteRow(long rowId) {
        String where = KEY_ROWID + "=" + rowId;
        return db.delete(DATABASE_TABLE, where, null) != 0;
    }

    public boolean updateRow(long id, String account, String date, String note, double entry, String others) {
        String where = KEY_ROWID + "=" + id;

        ContentValues values = new ContentValues();
        values.put(KEY_ACCOUNT, account);
        values.put(KEY_DATE, date);
        values.put(KEY_NOTE, note);
        values.put(KEY_ENTRY, entry);
        values.put(KEY_OTHERS, others);

        return db.update(DATABASE_TABLE, values, where, null) != 0;
    }
以及我的活动代码:

    myDb = new DBAdapter(this);
    myDb.open();
    myDb.updateRow(id,a,d,n,e,c);
它不更新数据,而是删除整行


你知道我做错了什么吗?

你是否验证了
updateRow
实际上正在被调用?有时这些问题归结为错误连接的按钮:)是的,我调用该方法。但是它没有更新,而是删除了行。您是否验证了实际上正在调用
updateRow
?有时这些问题归结为错误连接的按钮:)是的,我调用该方法。但不是更新,而是删除该行。