从SQLite检查和检索数据

时间:2015-09-19 14:07:32

标签: java android sqlite

我在我的应用中使用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))

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果发生错误,则返回

-1.insert(...)返回新插入记录的行ID。

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