【问题标题】:Check and Retrieve Data from SQLite从 SQLite 检查和检索数据
【发布时间】:2015-09-19 14:07:31
【问题描述】:

我在我的应用程序中使用 SQLite 数据库。我有一个将数据写入数据库的函数。代码如下

                c.put("Name",name.getText().toString());
                c.put("Mail", mail.getText().toString());
                c.put("Contact", contact.getText().toString());
                mail.setText("");
                contact.setText("");
                Boolean check=mydb.insertContact(c);

这里是 insertContact 函数

    public boolean insertContact(ContentValues contentValues)
    {
         SQLiteDatabase db = this.getWritableDatabase();
         db.insert("sports", null, contentValues);
         return true;
    }

我的问题是,有什么方法可以检查我的数据是否已插入数据库?这个函数总是返回true,所以我不知道我的数据是否插入成功。

现在我有一个函数可以从数据库中检索所有数据。代码如下

       allusers.setOnClickListener(new View.OnClickListener(){
       @Override
       public void onClick(View v) {
            String textarr[] =new String[10];
            textarr= mydb.getyourdata();
            int i = 0;
            while (i <= textarr.length) {
            String text=textarr[i];
            Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
       }}});

mydb 是 SQL 处理程序。这是 getyourdata() 函数

public String[]  getyourdata(){
    String selectQuery = "SELECT  * FROM " + CONTACTS_TABLE_NAME;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    String[] data = null;
    int i=0;
    if (cursor.moveToFirst()) {
        do {
            data[i]=cursor.getString(cursor.getColumnIndex(CONTACTS_COLUMN_NAME));
            i++; 
        } while (cursor.moveToNext());
    }
    db.close();
    return data;
}

编译器在这一行显示空指针异常

           while (i <= textarr.length) 

我不知道如何解决这个问题。请帮我。 这是我的数据库表结构 (姓名 varchar(50),邮件 varchar(50),联系人 varchar(15),位置 varchar(30))

提前致谢。

【问题讨论】:

    标签: java android sqlite


    【解决方案1】:

    -1 如果发生错误则返回。 .insert(...) 返回新插入记录的行 ID。

    如需更多帮助,请尝试SQLite.insert return -1 but data inserted into database

    【讨论】:

    • 我检查过了,返回的值不是-1。所以我可以假设我的数据现在已插入数据库。但是有什么方法可以让我在物理上看到数据(即无需查询,因为 SQLite 以文件的形式存储数据)
    • @NirmalRaj 你使用的是设备还是模拟器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2013-06-28
    • 2011-09-29
    • 2019-02-21
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多