【问题标题】:Insert text file data into sqlite database using android使用android将文本文件数据插入sqlite数据库
【发布时间】:2013-01-27 00:58:11
【问题描述】:

我的 android 应用程序在数据库中包含两个表,其中一个表存储动态数据,另一个表应通过解析文本文件将近 7000 个字典单词存储到该表中。此操作应在应用程序第一次安装时执行一次。文本文件存储在 raw 文件夹中。

我在这里面临的问题是,当我尝试解析并存储到该表中时,logcat 说数据库中没有这样的表。

这里是方法和DBHelper sn -p代码:

DBHelper 类 sn-p:

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());                   
}               

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    问题可能是因为 DbHelper 没有正确实例化。请检查在 dbhelper 实例化期间是否传递了正确的数据库名称、版本和上下文。 - 你也能告诉我logcat在代码中的哪个地方抱怨没有数据库存在吗 - 附上你的整个代码而不是片段

    【讨论】:

    • 问题是 DBHelper 没有正确实例化,上下文没有正确传递。我解决了这个问题,感谢您的指点。
    猜你喜欢
    • 2018-07-15
    • 2011-02-12
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多