gpt4 book ai didi

android - 使用多列更新 sqlite 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:11 25 4
gpt4 key购买 nike

我想通过检查 2 列来更新数据库。如果两列相同则更新,否则插入为新行。

        mydatabase.insertOrThrow(DATABASE_TABLE, null, records);
} catch (SQLiteConstraintException e) {
String where = KEY_ADDRESS +"=? and " + KEY_VALUE + "=?";
String[] whereArgs = new String[] {String.valueOf(address), String.valueOf(value)};
mydatabase.update(DATABASE_TABLE, records, where,whereArgs);
}

地址和值是主键,地址是唯一的。

现在它只在开头插入。当我更改值时,它不会插入任何记录。

这是我的创建函数:

        String create = String.format("CREATE TABLE %s ( %s TEXT ,%s TEXT NOT NULL UNIQUE ,"
+" %s INTEGER, %s TEXT, %s TEXT, PRIMARY KEY(%s, %s) );",
DATABASE_TABLE, KEY_NAME, KEY_ADDRESS, KEY_VALUE, KEY_ARRAY,
KEY_TİME, KEY_ADDRESS, KEY_VALUE);

我认为问题出在插入函数中。它以值开头插入,但在我更改值后它不会作为新行插入。当我改回旧值时它会更新行。

很抱歉添加有关问题的新信息,但我不能提出新问题。

最佳答案

public SQLiteDatabase db;

db = openOrCreateDatabase("databasename.db", MODE_PRIVATE, null);
String see = "create table if not exists tablename(id integer primary key autoincrement,address varchar(120) not null,address varchar(20) primary key, value varchar(20)unique)";
db.execSQL(see);

String selectQuery="select * from tablename";
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
String address =cursor.getString(1);
String value=cursor.getString(2);
} while (cursor.moveToNext());
}

// closing connection
cursor.close();
db.close();

String address1=String.valueOf(address);
String value1=String.valueOf(value)

if(address.equal(address1) && value.equal(value1))
{
try
{
db.insertOrThrow(DATABASE_TABLE, null, records);
} catch (SQLiteConstraintException e) {
String where = KEY_ADDRESS +"=? and " + KEY_VALUE + "=?";
String[] whereArgs = new String[] {String.valueOf(address), String.valueOf(value)};
db.update(DATABASE_TABLE, records, where,whereArgs);
}
}

使用此代码。

关于android - 使用多列更新 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544814/

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