1
我的android應用程序包含兩個表中的數據庫,其中一個表存儲動態數據,另一個表應該通過解析文本文件將近7000個字典單詞存儲到該表中。此操作應該是當應用程序第一次安裝時完成一次。文本文件存儲在原始文件夾中。插入文本文件數據到SQLite數據庫使用android
我在這裏面臨的問題是,當我嘗試解析並存儲到該表logcat中說在數據庫中沒有這樣的表。
這裏是方法和DBHelper代碼片段:
DBHelper類片段:
private static final String DICTIONARY_TABLE_CREATE =
"CREATE TABLE " + DATABASE_TABLE_NAME_DICTIONARY + "(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"words TEXT NOT NULL);";
private static final String USER_TABLE_CREATE =
"CREATE TABLE " + DATABASE_TABLE_NAME_USERINFO + "(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"player_name TEXT NOT NULL, " +
"player_username TEXT NOT NULL, " +
"player_pass TEXT NOT NULL, " +
"player_played VARCHAR NOT NULL, " +
"player_won VARCHAR NOT NULL, " +
"player_loss VARCHAR NOT NULL);";
public void onCreate(SQLiteDatabase db)
{
try
{
db.execSQL(USER_TABLE_CREATE);
db.execSQL(DICTIONARY_TABLE_CREATE);
System.out.println("In onCreate");
}
catch(Exception e)
{
e.printStackTrace();
}
}
這裏是方法來解析文本文件和值插入數據庫:
public void CopytxtfileTodb()
{
InputStream inputStream = getResources().openRawResource(R.raw.wordslists);
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
SQLiteDatabase db = playerDB.getWritableDatabase();
try
{
String line = "";
while((line= br.readLine()) != "")
{
ContentValues values = new ContentValues();
values.put("words", line);
try
{
db.insert(DBHelper.DATABASE_TABLE_NAME_DICTIONARY, null, values);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
catch(Exception e)
{
System.err.println("Parse Error: " + e.getMessage());
}
問題是DBHelper沒有正確實例化,上下文沒有正確傳遞。我解決了問題並感謝您的指點。 –