Android应用程序中的SQLite

时间:2015-05-19 14:28:26

标签: java android sqlite

我目前正在尝试学习Java,因此我开始创建一个需要SQLite的Android应用程序。一切似乎都运行良好,但我似乎无法使更新声明起作用。

我有一个.java文件,其中包含以:

开头的所有SQLite语句
public static final String KEY_ROWID = "_id";
public static final String KEY_TASK1 = "Content";
public static final String KEY_TASK2 = "Name";
public static final String KEY_TASK3 = "Stack";
public static final String DATABASE_NAME = "DBName";
public static final String DATABASE_TABLE = "Table";
public static final int DATABASE_VERSION = 10;

private static final String DATABASE_CREATE_SQL = 
        "CREATE TABLE " + DATABASE_TABLE 
        + " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
        + KEY_TASK1 + " Varchar UNIQUE, "
        + KEY_TASK2 + " TEXT NOT NULL, "
        + KEY_TASK3 + " INTEGER"
        + ");";

这是我在我的应用程序中调用的更新:

public boolean updateRow(Integer task1, Integer task3) {
    String where = KEY_TASK1 + "=" + task1;
    ContentValues newValues = new ContentValues();
    newValues.put(KEY_TASK3, task3);
    // Insert it into the database.
    return db.update(DATABASE_TABLE, newValues, where, null) != 0;
}

在我的主.java文件中,我打电话:

private void ScanOutItem (View view){
    myDb.updateRow("5741000124024", 2);
}

我已绑定到我的应用程序中的按钮。 正如我在开始时所说,这是我第一次申请,所以我不能保证它是完美的。但是,如果我错过了某些内容,或者您​​可以看到错误,请告诉我们。我觉得我已经尝试了所有的东西,所以任何帮助都会受到赞赏。

我使用了我在youtube上看到的指南,但是我根据指南对它进行了一些更改,这些指南并不适合我的应用。

指南:https://www.youtube.com/watch?v=9zEKKKEFtHQ

1 个答案:

答案 0 :(得分:0)

尝试db.update(DATABASE_TABLE, newValues, KEY_TASK1+"=?", new String[]{task1});

db.execSQL("UPDATE "+DATABASE_TABLE+" SET "+KEY_TASK3+"="+task3+" WHERE "+KEY_TASK1+"="+task1);

如果上面没有任何效果,请尝试更新updateRow这样的方法

public boolean updateRow(Integer task1, Integer task3) {
    String where = KEY_TASK1 + "=" + task1;
    ContentValues newValues = new ContentValues();
    newValues.put(KEY_TASK3, task3);
    SQLiteDatabase db1 = this.getWritableDatabase();
    // Insert it into the database. 
    return db.update(DATABASE_TABLE, newValues, KEY_TASK1+"=?", new String[]{task1}) != 0;
}

<强>更新 而不是在xml中设置onClick:,而是像这样从

中调用它
Button myButton  =  (Button) findViewById(R.id.myButtonId);
myButton.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        //call update method here
    }
});