如何在android sqlite中添加数据?
我想在上一个id中的特定id处添加新值,但每次添加时都会在新id上创建数据,而不是与上一个id一起添加 以下是我的databasehelper类的方法:如何在android sqlite中添加数据?,android,sqlite,Android,Sqlite,我想在上一个id中的特定id处添加新值,但每次添加时都会在新id上创建数据,而不是与上一个id一起添加 以下是我的databasehelper类的方法: public boolean addalldata(String value1, String value2, String value3) { String previous1 = null,previous2 = null,previous3= null; SQLiteDatabase db = this.ge
public boolean addalldata(String value1, String value2, String value3) {
String previous1 = null,previous2 = null,previous3= null;
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
String myquery = "SELECT * FROM student_table WHERE id = 1";
Cursor res = db.rawQuery(myquery, null);
while(res.moveToNext()) {
previous1 = res.getString(1);
previous2 = res.getString(2);
previous3 = res.getString(3);
}
contentValues.put(COL_2, value1 + previous1);
contentValues.put(COL_3, value2 + previous2);
contentValues.put(COL_4, value3 + previous3);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;}
下面是mainactivity类的方法
private void AddAllData() {
btnaddall.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.addalldata(edit1.getText().toString(),
edit2.getText().toString(),
edit3.getText().toString());
if (isInserted = true)
Toast.makeText(MainActivity.this, "Data Inserted", Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this, "Data not Inserted", Toast.LENGTH_LONG).show();
}
}
);
}
试试这个:
public boolean addalldata(String value1, String value2, String value3) {
String previous1 = "0",previous2 = "0",previous3= "0";
long result = 0;
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
String myquery = "SELECT * FROM student_table WHERE id = 1";
Cursor res = db.rawQuery(myquery, null);
if(res.getCount()>0){
res.moveToFirst();
previous1 = res.getString(1);
previous2 = res.getString(2);
previous3 = res.getString(3);
try{
contentValues.put(COL_2, Integer.parseInt(value1) + Integer.parseInt(previous1));
contentValues.put(COL_3, Integer.parseInt(value2) + Integer.parseInt(previous2));
contentValues.put(COL_4, Integer.parseInt(value3) + Integer.parseInt(previous3));
result = db.update(TABLE_NAME, contentValues, "id = ?", new String[]{"1"});
}catch(Exception e){
result = -1;
}
if (result == -1)
return false;
else
return true;
}else{
contentValues.put(COL_2, value1);
contentValues.put(COL_3, value2);
contentValues.put(COL_4, value3);
result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;
}
}
如果数据库中没有记录,则使用db.insert插入新记录,否则使用db.update更新现有记录。请尝试res.moveToFirst()。
这会将光标移动到第一个位置,以便进一步检查从第一行开始。
insert
创建新记录。您希望更新。粘贴代码后,在我的databasehelper类中,不会发生任何情况,记录1不会在上一个记录中添加新值可能是记录的id不是1现在它只是将新值与上一个值连接起来,但不会同时添加这两个值,我想要加法,它们是连接的。请给我一个例子,你想如何连接它们。例如,如果以前的值是4,新的值是3,那么结果应该是7,而不是34