SQLiteDatabase插入方法

时间:2014-05-14 05:58:39

标签: android database sqlite insert

我在向数据库中插入行时遇到问题。当我通过我的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);

}

有什么明显的我在这里做错了吗?

1 个答案:

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