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