gpt4 book ai didi

Android SQLite数据库查询

转载 作者:行者123 更新时间:2023-11-30 03:55:53 25 4
gpt4 key购买 nike

我正在创建一个需要数据库连接的 Android 应用程序,为此我使用了内置的 SQLiteDatabase 类。我的数据库是使用以下语句创建的:-

SQLiteDatabase db;
db = openOrCreateDatabase("ContactsMain",SQLiteDatabase.CREATE_IF_NECESSARY,null);
db.execSQL("Create Table Contacts (name Text, phno Text PRIMARY KEY, important Integer)");

'important' 的值为 0 或 1,具体取决于联系人是否重要。要更新此值,我使用以下代码:

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
c.moveToPosition(position);
String ph = c.getString(c.getColumnIndex("phno"));
ContentValues val = new ContentValues();
val.put("important",1);
String query = "update Contacts set important = 1 where phno=" + ph + ";";
db.update("Contacts", val, query, null);
c.close();
db.close();
}

db和c已经初始化如下:

SQLiteDatabase db = openOrCreateDatabase("ContactsMain",SQLiteDatabase.CREATE_IF_NECESSARY,null);
Cursor c = db.rawQuery("SELECT * FROM Contacts",null);

问题是,当我单击列表中的项目时,所有联系人的“重要”值都设置为 1,而不仅仅是所选联系人。有人可以帮我吗?

最佳答案

这对你有用

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);


c.moveToPosition(position);
String ph = c.getString(c.getColumnIndex("phno"));

String where = "phno=?";
String[] whereArgs = new String[] {ph};

ContentValues val = new ContentValues();
val.put("important",1);

db.update(DATABASE_TABLE, val, where, whereArgs);
c.close();
db.close();

}

关于Android SQLite数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com