SQLite дважды вызывает одну и ту же команду INSERT - PullRequest
0 голосов
/ 21 мая 2018

Я пытался вставить несколько данных на основе двух массивов.Оба содержат разные значения.И я хочу вставить их в одну и ту же таблицу.

В моем DBHandler я написал инструкцию INSERT, как показано ниже

public void addData(Foto foto) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_TGL, foto.getDate());
    values.put(KEY_SITEID, foto.getSiteid());
    values.put(KEY_KATEGORI, foto.getKategori());
    values.put(KEY_FILENAME, foto.getFilename());
    values.put(KEY_PATH, foto.getPath());

    db.insert(TABLE_SHOPS, null, values);
    db.close();
}

И в моей деятельности.Я написал так:

for(int i=0;i<=namefile.length;i++){
            Bitmap[] bitmap = new Bitmap[namefile.length];
            FileOutputStream outputStream = new FileOutputStream(String.valueOf(namefile[i]));
            bitmap[i] = BitmapFactory.decodeByteArray(decodedString[i],0,decodedString[i].length);
            bitmap[i].compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
            outputStream.close();

            MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), namefile[i].getAbsolutePath(), namefile[i].getName(), namefile[i].getName());

            db.addData(new Foto(fDate,siteid,"genset_progres",namefile[i].getName(),namefile[i].getAbsolutePath()));
        }

        for(int a=0;a<=var.length;a++){
            db.addData(new Foto(fDate,siteid,"genset_progres","",var[a]));
        }

Я намеревался вставить данные namefile и данные var в одну таблицу.Итак, я написал, как указано выше ... Но когда я их называю, в базу данных вставляется только имя файла.Извините, я не совсем понимаю, как работают циклы и SQLITE на Android, так как я впервые пробую это сделать.Может быть, вы, ребята, можете мне помочь.Я очень ценю это.

Если есть что-то, что я должен предоставить ... не стесняйтесь спрашивать.

1 Ответ

0 голосов
/ 21 мая 2018

заменить

for(int i=0;i<=namefile.length;i++)

на

for(int i=0;i<namefile.length;i++)

, а также

for(int a=0;a<=var.length;a++)

на

for(int a=0;a<var.length;a++)

, чтобы вы могли запуститькод без ArrayOutOfBoundsException.

...