сначала ... Я не хочу, чтобы изменить свой первичный ключ ....андроида обновление SQLite
и вот метод моей БД создать ....
public void onCreate(SQLiteDatabase db) {
String DATABASE_CREATE_TABLE =
"create table userData ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "HTTPorS TEXT,"
+ "IPHostName TEXT,"
+ "port TEXT,"
+ "userName TEXT,"
+ "password TEXT,"
+ "saveOption TEXT"
+ ");";
db.execSQL(DATABASE_CREATE_TABLE);
}
и это как я добавить строку в это
public long create(String HTTPorS, String IPHostName, String port, String userName, String password, String saveOption) {
ContentValues args = new ContentValues();
args.put("HTTPorS", HTTPorS);
args.put("IPHostName", IPHostName);
args.put("port", port);
args.put("userName", userName);
args.put("password", password);
args.put("saveOption", saveOption);
return db.insert("userData", null, args);
}
Оба 2 метода вверх до работы нормально ... Но когда я хочу, чтобы изменить значение строк ... Я использую этот метод
public void update(long rowId,String httporS, String IP,String Port,String userName,String password) {
ContentValues args = new ContentValues();
args.put("HTTPorS", httporS);
args.put("IPHostName", IP);
args.put("port", Port);
args.put("userName", userName);
args.put("password", password);
args.put("saveOption", "no use");
db.update("userData",
args,
"_id=" + rowId,
null
);
}
Он работает нормально, и правильные значения 「сделать」 получить в этом методе ...
но данные в децибелах не заменит
почему это?
благодарит за вашу помощь!
Я думаю, ваша проблема с WhereClause вы дали. Проверьте это, возвращая значение int из вашего метода. –
Вы уверены, что 'rowId' верен? – Caner
Что возвращает 'db.update'? – Caner