我在向数据库中插入行时遇到问题。当我通过我的activity类触发insertEntry()时,database.insert(...)返回1,这意味着没有问题。事实上没有什么可以保存!一旦重新加载数据库,它就像我从未插入任何东西。
活动类
...
MyDBHelper myDBHelper = new MyDBHelper(getApplicationContext());
myDBHelper.open();
myDBHelper.insertEntry(str, num);
myDBHelper.close();
MyDBHelper Class
// Here I have "database" defined as a private SQLiteDatabase object.
public void insertEntry(String str, int num)
{
ContentValues values = new ContentValues();
values.put("myStr", str);
values.put("myNum", num);
database.insert("myTable", null, values);
}
在我的SQLiteHelper类中,我使用OPEN_READWRITE打开数据库,因此它应该是可写的。
public void openDataBase() throws SQLException{
//Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}
有什么明显的我在这里做错了吗?
答案 0 :(得分:0)
你在某处犯了一些错误。可能在你的MyDBHelper
课程中。试试这个代码,它应该可以正常工作:
public void insertEntry(String str, int num)
{
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("myStr", str);
values.put("myNum", num);
long rowID = database.insert("myTable", null, values);
Log.i("", "Newly inserted row id: " + rowID);
database.close();
}