vendredi 2 octobre 2015

Can't load CSV to fill SQLite database on Android Studio

i am now developing an android app that need database to be filled when the user first use the app. I have the database on my .csv file, and i want to load this into my sqlite database (the value of .csv file will filled the database) when user first open the database. But here i have some problem when try to load it, i have found some answer on stackoverflow that gimme some pattern of code, i have edited it but i don't know its getting an error. I have tried to use another code, but still its gimme a lot of error. I don't know what happen, please master help me.

Thanks before.

NB. this is my code for databaseHelper.java

public class DatabaseHelper extends SQLiteOpenHelper {
public static final String MyVillageSoftware = "MyVillageSoftware";
public static final String DATABASE_NAME = "Question.db";
public static final String table_Question = "table_question";

public static final String COL1 = "QuestId";
public static final String COL2 = "A";
public static final String COL3 = "B";
public static final String COL4 = "C";
public static final String COL5 = "D";
public static final String COL6 = "aExplain";
public static final String COL7 = "bExplain";
public static final String COL8 = "cExplain";
public static final String COL9 = "dExplain";
public static final String COL10 = "_id";
//TOL for transaction Coloumn
SQLiteDatabase db;

private static final String TAG = DatabaseHelper.class.getSimpleName();



public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);

}

@Override
public void onCreate(SQLiteDatabase db) {

    db.execSQL("Create table " + table_Question +
            " (QuestId Integer PRIMARY KEY, " +
            "A Text," +
            "B Text," +
            "C Text" +
            "D Text," +
            "aExplain Text," +
            "bExplain Text," +
            "cExplain Text," +
            "dExplain Text," +
            "_id Text)");

}

public void loadCSV(){
    InputStream is = getAssets().open("myfile.csv");
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    FileReader file = new FileReader(csv);
    String line = "";
    String tableName ="question_table";
    String columns = "QuestId, a, b, c, d, aExplain, bExplain, cExplain, dExplain, _id";
    String str1 = "INSERT INTO " + tableName + " (" + columns + ") values(";
    String str2 = ");";

    db.beginTransaction();
    while ((line = buffer.readLine()) != null) {
        StringBuilder sb = new StringBuilder(str1);
        String[] str = line.split(",");
        sb.append("'" + str[0] + "',");
        sb.append(str[1] + "',");
        sb.append(str[2] + "',");
        sb.append(str[3] + "'");
        sb.append(str[4] + "'");
        sb.append(str[5] + "'");
        sb.append(str[6] + "'");
        sb.append(str[7] + "'");
        sb.append(str[8] + "'");
        sb.append(str[9] + "'");
        sb.append(str2);
        db.execSQL(sb.toString());
    }
    db.setTransactionSuccessful();
    db.endTransaction();
}

public List<String> getAllCategory() {
    List<String> AllCategoryList = new ArrayList<String>();
    List<String> AllCategIdList = new ArrayList<String>();

    String selectQuery = "SELECT * FROM " + table_Question;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);



    if (cursor.moveToFirst()) {
        do {
            String Id = cursor.getString(0);
            String A = cursor.getString(1);
            String B = cursor.getString(2);
            String C = cursor.getString(3);
            String D = cursor.getString(4);
            String aExplain = cursor.getString(5);
            String bExplain = cursor.getString(6);
            String cExplain = cursor.getString(7);
            String dExplain = cursor.getString(8);

        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return AllCategoryList;
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + table_Question);
    onCreate(db);

}

}

Aucun commentaire:

Enregistrer un commentaire