我正在为android编写一个应用程序。我需要读取一个 txt 文件并将数据写入 SQLite 文件。我已经设法完成了所有代码,但是应该将值插入数据库的部分不起作用。我已经给出了下面的代码:
try{
ContentValues values = new ContentValues();
values.put(KEY_NAME, firstNumber); // Contact Name
values.put(KEY_PH_NO, strfinal); // Contact Phone
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);
} catch(Exception e) {
e.printStackTrace();
}
此代码未将值输入数据库,操作完成后数据库仍为空。这有什么问题?谢谢。编辑:好的,这是完整的代码:
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "feedsmanager.sqlite";
// Contacts table name
private static final String TABLE_CONTACTS = "table_to_hold_all_values";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";//ctid
private static final String KEY_PH_NO = "phone_number";//feedname,address;feedname;address etc
Context ctx;
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
ctx=context;
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
//Log.d("in onCreate","twitch1");
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT);";
//Log.d("below createcontacts","twitch1");
try{
db.execSQL(CREATE_CONTACTS_TABLE);
}catch(Exception e){Log.d("create went wrong: "+e,"twitch11");}
//Log.d("below db.execsql","twitch1");
populate(db);
}
void populate(SQLiteDatabase dbs){
String line="";
try{
InputStream is = ctx.getAssets().open("feedtitlesandaddresses.txt");
InputStreamReader iz=new InputStreamReader(is);
BufferedReader br = new BufferedReader(iz);
//SQLiteDatabase dbs = this.getWritableDatabase();
while((line=br.readLine())!=null) {
//Log.d("fcked here6","twitch1");
StringTokenizer stringTokenizer = new StringTokenizer(line, "<");
String firstNumber="";
String strfinal="";
firstNumber = (String) stringTokenizer.nextElement();
**//Calculations to give values to firstNumber and strfinal excluded
ContentValues values = new ContentValues();
values.put(KEY_NAME, firstNumber); // Contact Name
values.put(KEY_PH_NO, strfinal); // Contact Phone
// Inserting Row
dbs.insert(TABLE_CONTACTS, null, values);}
dbs.close();}catch(Exception e){Log.d("yeah error is"+e,"twitch12");}
}}