Ich habe jetzt versucht, eine bestimmte Zeile zu aktualisieren, und es gibt zwei Möglichkeiten, dies zu tun. Von dem, was ich gelesen und ausprobiert habe, können Sie einfach Folgendes verwenden:
execSQL(String sql)
Methode
oder der:
update(String table, ContentValues values, String whereClause, String[] whereArgs)
Methode.
(Lassen Sie mich wissen, ob dies falsch ist, da ich neu in Android und sehr neu in SQL bin.)
Lassen Sie mich zu meinem aktuellen Code kommen.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
Ich versuche das zu erreichen:
Aktualisieren Sie Field1, Field2 und Field3, wobei der Primärschlüssel (_id) gleich 1 ist.
Eclipse gibt mir eine rote Linie direkt unter dem Word "Update" und gibt mir diese Erklärung:
Die Methode update (String, ContentValues, String, String []) vom Typ SQLiteDatabase ist für die Argumente nicht anwendbar (String, String, String, null).
Ich vermute, ich ordne die ContentValues nicht richtig zu. Kann mir jemand die richtige Richtung zeigen?
Erstellen Sie zunächst ein ContentValues-Objekt:
ContentValues cv = new ContentValues();
cv.put("Field1","Bob"); //These Fields should be your String values of actual column names
cv.put("Field2","19");
cv.put("Field2","Male");
Dann benutze die Update-Methode, die sollte jetzt funktionieren
myDB.update(TableName, cv, "_id="+id, null);
Einfacher Weg:
String strSQL = "UPDATE myTable SET Column1 = someValue WHERE columnId = "+ someValue;
myDataBase.execSQL(strSQL);
Erstellen Sie zunächst ein ContentValues Objekt:
ContentValues cv = new ContentValues();
cv.put("Field1","Bob");
cv.put("Field2","19");
Verwenden Sie dann die Aktualisierungsmethode. Das dritte Argument ist die where-Klausel. Das "?" ist ein Platzhalter. Es wird durch das vierte Argument (id) ersetzt.
myDB.update(MY_TABLE_NAME, cv, "_id = ?", new String[]{id});
Dies ist die Bereinigungslösung zum Aktualisieren einer bestimmten Zeile.
Dieser Code sollte Ihr Beispiel korrigieren:
ContentValues data=new ContentValues();
data.put("Field1","bob");
data.put("Field2",19);
data.put("Field3","male");
DB.update(Tablename, data, "_id=" + id, null);
sie können dies versuchen ...
db.execSQL("UPDATE DB_TABLE SET YOUR_COLUMN='newValue' WHERE id=6 ");
verwenden Sie diesen Code in Ihrer DB `
public boolean updatedetails(long rowId,String name, String address)
{
ContentValues args = new ContentValues();
args.put(KEY_ROWID, rowId);
args.put(KEY_NAME, name);
args.put(KEY_ADDRESS, address);
int i = mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null);
return i > 0;
}
für die Aktualisierung in Ihrem Beispiel verwenden Sie diesen Code
//DB.open();
try{
//capture the data from UI
String name = ((EditText)findViewById(R.id.name)).getText().toString().trim();
String address =(EditText)findViewById(R.id.address)).getText().toString().trim();
//open Db
pdb.open();
//Save into DBS
pdb.updatedetails(RowId, name, address);
Toast.makeText(this, "Modified Successfully", Toast.LENGTH_SHORT).show();
pdb.close();
startActivity(new Intent(this, sample.class));
finish();
}catch (Exception e) {
Log.e(TAG_AVV, "errorrrrr !!");
e.printStackTrace();
}
pdb.close();
hoffe das hilft dir:
public boolean updatedetails(long rowId, String address)
{
SQLiteDatabase mDb= this.getWritableDatabase();
ContentValues args = new ContentValues();
args.put(KEY_ROWID, rowId);
args.put(KEY_ADDRESS, address);
return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null)>0;
}
Sie versuchen diese eine Aktualisierungsmethode in SQLite
int id;
ContentValues con = new ContentValues();
con.put(TITLE, title);
con.put(AREA, area);
con.put(DESCR, desc);
con.put(TAG, tag);
myDataBase.update(TABLE, con, KEY_ID + "=" + id,null);
Kann so versuchen:
ContentValues values=new ContentValues();
values.put("name","aaa");
values.put("publisher","ppp");
values.put("price","111");
int id=sqdb.update("table_name",values,"bookid='5' and booktype='comic'",null);
Für Updates müssen Sie setTransactionSuccessfull aufrufen, damit Änderungen übernommen werden:
db.beginTransaction();
try {
db.update(...)
db.setTransactionSuccessfull(); // changes get rolled back if this not called
} finally {
db.endTransaction(); // commit or rollback
}
// Hier ist ein einfacher Beispielcode für das Update
// erkläre das zuerst
private DatabaseAppHelper dbhelper;
private SQLiteDatabase db;
// das Folgende initialisieren
dbhelper=new DatabaseAppHelper(this);
db=dbhelper.getWritableDatabase();
// Aktualisierungscode
ContentValues values= new ContentValues();
values.put(DatabaseAppHelper.KEY_PEDNAME, ped_name);
values.put(DatabaseAppHelper.KEY_PEDPHONE, ped_phone);
values.put(DatabaseAppHelper.KEY_PEDLOCATION, ped_location);
values.put(DatabaseAppHelper.KEY_PEDEMAIL, ped_emailid);
db.update(DatabaseAppHelper.TABLE_NAME, values, DatabaseAppHelper.KEY_ID + "=" + ?, null);
// Ur-ID anstelle von 'Fragezeichen' setzen ist eine Funktion in meiner gemeinsamen Präferenz.
wenn Ihre sqlite-Zeile eine eindeutige ID oder ein anderes Äquivalent hat, können Sie die where-Klausel wie folgt verwenden
update .... where id = {here is your unique row id}
public void updateRecord(ContactModel contact) {
database = this.getReadableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_FIRST_NAME, contact.getFirstName());
contentValues.put(COLUMN_LAST_NAME, contact.getLastName());
contentValues.put(COLUMN_NUMBER,contact.getNumber());
contentValues.put(COLUMN_BALANCE,contact.getBalance());
database.update(TABLE_NAME, contentValues, COLUMN_ID + " = ?", new String[]{contact.getID()});
database.close();
}
versuchen Sie es einfach so
String strFilter = "_id=" + Id;
ContentValues args = new ContentValues();
args.put(KEY_TITLE, title);
myDB.update("titles", args, strFilter, null);**
public long fillDataTempo(String table){
String[] table = new String[1];
tabela[0] = table;
ContentValues args = new ContentValues();
args.put(DBOpenHelper.DATA_HORA, new Date().toString());
args.put(DBOpenHelper.NOME_TABELA, nome_tabela);
return db.update(DATABASE_TABLE, args, STRING + " LIKE ?" ,tabela);
}
Methode zur Aktualisierung in SQLite:
public void updateMethod(String name, String updatename){
String query="update students set email = ? where name = ?";
String[] selections={updatename, name};
Cursor cursor=db.rawQuery(query, selections);
}