从数据库中删除数据时,此代码有何作用?

时间:2017-06-27 14:48:49

标签: android sqlite android-sqlite

有人可以解释第一段代码的作用吗?据我所知,第二段代码是删除RoutineTable中DayOfWeek为selectedDay的所有内容。如果有人能带我走过那将是惊人的!提前谢谢!

第一段代码......

private void deleteRoutine() {
myDb.deleteRoutineForCurrentDay(currentDay);
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);

}

第二段代码......

public void deleteRoutineForCurrentDay(String selectedDay)
{
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("DELETE FROM " + RoutineTable + " WHERE DayOfWeek ='" + selectedDay + "'");
}

P.S。如果有人能解释使用db.execSQL,db.rawQuery和db.insert?

之间的区别

1 个答案:

答案 0 :(得分:1)

这里有逐行

myDb.deleteRoutineForCurrentDay(currentDay);

执行从变量

中删除表中数据的方法

然后

Intent intent = getIntent();

您获取实例以使用意图。

overridePendingTransition(0, 0);

在这里你做了一个mnistake,是的它需要两个整数但是它们是两个动画,使用int你可以引用将被执行的动画而不是默认动画。

intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

您在另一个活动开始时取消设置动画转换

with:finish();

您正在调用用于以下的方法On destroy:

  • 关闭活动管理的所有对话框。
  • 关闭活动管理的所有游标。
  • 关闭所有打开的搜索对话框

startActivity(intent);

您将收到错误消息,因为您没有对某个活动或类别的引用。

关于您的另一个问题

  

P.S。如果有人能解释使用db.execSQL,db.rawQuery和db.insert?

之间的区别

在内部,我不知道差异,但

db.execSQL();

您只需执行一条SQL指令,它就不会抛出响应。

db.rawQuery();

您有一个光标作为结果,可用于任何目的。

db.insert();

你有办法在没有SQL的情况下构建你的查询,你只需要放置你的数据。

这里有更多信息。

SQLiteDatabase Documentation

我希望我的解释可以帮到你。

祝你好运:3