EGH*_*HDK 131 java sql eclipse sqlite android
我一直在尝试更新特定的行一段时间,似乎有两种方法可以做到这一点.根据我的阅读和尝试,你可以使用:
execSQL(String sql) 方法
或者:
update(String table, ContentValues values, String whereClause, String[] whereArgs) 方法.
(让我知道这是不正确的,因为我是Android新手,对SQL很新.)
那么让我来看看我的实际代码.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
Run Code Online (Sandbox Code Playgroud)
我想完成这个:
更新Field1,Field2和Field3,其中主键(_id)等于1.
Eclipse在"更新"一词的下方给了我一条红线,并给出了我的解释:
SQLiteDatabase类型中的方法update(String,ContentValues,String,String [])不适用于参数(String,String,String,null)
我猜我没有正确分配ContentValues.谁能指出我正确的方向?
Akh*_*hil 277
首先制作一个ContentValues对象:
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");
Run Code Online (Sandbox Code Playgroud)
然后使用更新方法,它现在应该工作:
myDB.update(TableName, cv, "_id="+id, null);
Run Code Online (Sandbox Code Playgroud)
Yaq*_*mad 48
简单方法:
String strSQL = "UPDATE myTable SET Column1 = someValue WHERE columnId = "+ someValue;
myDataBase.execSQL(strSQL);
Run Code Online (Sandbox Code Playgroud)
fun*_*der 37
首先创建一个ContentValues对象:
ContentValues cv = new ContentValues();
cv.put("Field1","Bob");
cv.put("Field2","19");
Run Code Online (Sandbox Code Playgroud)
然后使用更新方法.注意,第三个参数是where子句."?" 是一个占位符.它将被替换为第四个参数(id)
myDB.update(MY_TABLE_NAME, cv, "_id = ?", new String[]{id});
Run Code Online (Sandbox Code Playgroud)
这是更新特定行的清除解决方案.
Kar*_*som 24
此代码应修复您的示例:
ContentValues data=new ContentValues();
data.put("Field1","bob");
data.put("Field2",19);
data.put("Field3","male");
DB.update(Tablename, data, "_id=" + id, null);
Run Code Online (Sandbox Code Playgroud)
Mur*_*n.P 11
你可以尝试这个......
db.execSQL("UPDATE DB_TABLE SET YOUR_COLUMN='newValue' WHERE id=6 ");
Run Code Online (Sandbox Code Playgroud)
小智 5
您在 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);
Run Code Online (Sandbox Code Playgroud)
在你的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;
}
Run Code Online (Sandbox Code Playgroud)
在sample.java中更新使用此代码
//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();
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314982 次 |
| 最近记录: |