Попытка экспортировать базу данных в файл формата txt или csv создается, но в файле нет данных. Проблема заключается в получении столбцов для экспорта - PullRequest
0 голосов
/ 27 февраля 2020

Я думаю, что проблема заключается в получении столбцов в курсоре для экспорта из таблицы. Я использую класс фрагмента.

Каждый раз, когда файл создается, но он blank.

private void exportDB()
{

    Date c = Calendar.getInstance().getTime();
    SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
    final String formattedDate = df.format(c);

    SQLiteHelper dbhelper = new SQLiteHelper(getActivity());
    File exportDir = new File(Environment.getExternalStorageDirectory(), "/Android/data/" + "com.abc.xyz" + "/Export/");
    if (!exportDir.exists())
    {
        exportDir.mkdirs();
    }
    File file = new File(exportDir, formattedDate+".csv");
    try
    {
        file.createNewFile();
        CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
        SQLiteDatabase db = dbhelper.getReadableDatabase();
        Cursor cur = db.rawQuery("SELECT * FROM Transaction_off",null);
        csvWrite.writeNext(cur.getColumnNames());
        while(cur.moveToNext())
        {

            String arrStr[] ={cur.getString(0),cur.getString(1), cur.getString(2)};
            csvWrite.writeNext(arrStr);

        }
        csvWrite.close();
        cur.close();
        Toast.makeText(getActivity(), "Transaction File Exported", Toast.LENGTH_LONG).show();
    }
    catch(Exception sqlEx)
    {
        Log.e("SettinFragments", sqlEx.getMessage(), sqlEx);
    }
}
...