2015-05-19 55 views
0

我目前正在学习Java,因此我开始制作一个需要SQLite的Android应用程序。一切似乎工作正常,但我似乎无法让更新声明工作。Android应用程序中的SQLite

我有一个.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

回答

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; 
} 

UPDATE 而不是SE拟合onClick:在XML中,从Java调用它

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

我想我找到了我一个问题,我做了一个按钮,重定向到一个新的文件指定的onClick,可能因此没有得到应用,但是我添加了一个新的按钮,我试图将其分配给现在每次我点击它,它会说“我的应用程序已停止工作”..嗯但我确实尝试了两种解决方案和相同的结果。 – Dondyr

+0

也许你在xml中设置了监听器,不是吗? anwyz,发布logcat。 – theapache64

+0

我已经删除了onClick函数,并添加了您编写的代码,现在我的appliication不关闭,但它似乎仍然不会更新任何内容。 我发布了我的日志文件: http://dondyr.dk/verbose.txt http://dondyr.dk/error.txt http://dondyr.dk/debug.txt http:// dondyr.dk/info.txt – Dondyr

相关问题