【问题标题】:How to update a record in SQLite with Android?如何使用 Android 更新 SQLite 中的记录?
【发布时间】:2017-08-17 01:06:35
【问题描述】:

如何使用 Android 更新 SQLite 中的记录?

你好。

我写作是因为不幸地陷入了我的项目中,希望你能帮助我。 如何更新数据库中的记录?

例如在联系人数据库中。在这个联系人数据库中,使用了以下键:姓名、电话、电子邮件和地址;我的问题是当我需要修改一条记录时,我该怎么做才能修改一条记录。

我希望你能帮助我。提前致谢。

这是更新注册表的 SQLite 代码:

// Updating single contact
public int updateContact(Contact contact) {

    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_NAME, contact.getName());
    values.put(KEY_PH_NO, contact.getPhoneNumber());

    // updating row
    return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) });
}

我在许多网站上都找到了相同的代码,但我的问题是如何使用 Java 从 MainActivity 调用代码。

【问题讨论】:

标签: android sqlite


【解决方案1】:

1- 在主活动中从您的数据库创建一个实例:

DBhelper db = new DBhelper(this);

2- 通话打开:

db.open();

3-设置更新方式:

db.updateContact(name,phone);

4- 关闭数据库连接:

db.close();

5- 数据库助手类中的打开和关闭函数:

public DBhelper open() throws SQLException {
    mDb = mDbHelper.getWritableDatabase();
    return this;
}

public void close() {
    mDbHelper.close();
}

6- 你还必须将它们定义为全局变量:

private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;

我给你的建议是不要依赖书面代码,你必须学会​​自己编写,特别是数据库创建和使用,这非常重要,所以这里有一个很好的教程,你可以从中受益:http://www.tutorialspoint.com/android/android_sqlite_database.htm。 祝你好运

【讨论】:

  • SQLiteOpenHelper 中没有 open() 方法。
  • 我对其进行了编辑以包含打开和关闭方法,请查看:)
  • 在不需要的时候为什么要定义一个单独的open() 方法? SQLiteOpenHelper 被设计成不需要在中心点打开SQLiteDatabase。另外,为什么对象本身内部会有一个局部的mDbHelper 变量?
  • 这是一种使用 open 和 close 作为分离方法的约定,它将使您的代码更易于使用、阅读和更高效。
  • 对于 mdbHelper 部分,您完全搞错了,这个变量对于为 DatabaseHandler 类定义构造函数至关重要,该构造函数将创建内部类 databseHandler 的对象(它将上下文作为参数)。当然,您需要在所有这些之前定义内部类 DatabaseHandler 的对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 2023-03-06
  • 2018-06-09
  • 2018-05-29
  • 2021-06-08
相关资源
最近更新 更多