2015-09-19 3 views
-1

Я использую SQLite DB в своем приложении. У меня есть функция, которая записывает данные в базу данных. Код выглядит следующим образомПроверка и получение данных из 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) 

я не имею ни малейшего представления о том, как решить эту проблему. Пожалуйста, помогите мне. Это моя структура БД таблица (Name VARCHAR (50), почта VARCHAR (50), Contact VARCHAR (15), Место VARCHAR (30))

Спасибо заранее.

ответ

0

-1 возвращается, если произошла ошибка. .insert(...) возвращает идентификатор строки новой вставленной записи.

для получения дополнительной помощи попробовать SQLite.insert return -1 but data inserted into database

+0

Я проверил его и возвращаемое значение не -1. Поэтому я могу предположить, что мои данные теперь вставлены в БД. Но есть ли способ, с помощью которого я могу физически видеть данные (т. Е. Без запросов, поскольку SQLite хранит данные в виде файла) –

+0

@NirmalRaj вы используете устройство или эмулятор? – Tauqir

+0

, если устройство затем посещает http://stackoverflow.com/questions/19194576/how-to-view-the-sqlite-database-in-device-android – Tauqir

Смежные вопросы