如何在android sqlite中添加数据?

如何在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

我想在上一个id中的特定id处添加新值,但每次添加时都会在新id上创建数据,而不是与上一个id一起添加

以下是我的databasehelper类的方法:

     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