2016-11-05 5 views
-2

Я хочу перейти к некоторой информации в sqlite базе данных в android.but я не знаю, что. мой код:используя несколько запросов в курсоре в android

public Cursor getData() { 
 
     String myPath = DB_PATH + DB_NAME; 
 
     db = SQLiteDatabase.openDatabase(myPath, null, 
 
       SQLiteDatabase.OPEN_READONLY); 
 
     Cursor c = db.rawQuery("SELECT text,_id from tbl_laws where parent_id = 0",null); 
 
     // Note: Master is the one table in External db. Here we trying to access the records of table from external db. 
 

 

 
     Cursor c1 = db.rawQuery("SELECT text,_id from tbl_nokte where parent_id = 0",null); 
 
     // Note: Master is the one table in External db. Here we trying to access the records of table from external db. 
 
     return c; 
 
     return c1; 
 
    }

кто может мне помочь?

+0

Просьба предоставить некоторые образцы данных и желаемый результат. –

ответ

1

Решение заключается в настройке SQL-Select-Query.

Вы уже используете rawQuery для получения информации, но для двух разных Cusors. Это не будет работать.

Решение, чтобы получить необходимую информацию с помощью одного курсора может быть:

public Cursor getData() { 
    String myPath = DB_PATH + DB_NAME; 
    db = SQLiteDatabase.openDatabase(myPath, null, 
      SQLiteDatabase.OPEN_READONLY); 

    String query = "SELECT laws._id, laws.text," + 
          " nokt._id,nokt.text" + 
        " FROM tbl_laws AS laws, tbl_nokte AS nokt" + 
        " WHERE laws.parent_id = 0 AND nokt.parent_id = 0"; 


    Cursor c = db.rawQuery(query, null); 

    return c; 
} 

Использование будет: (! Пример кода выше не проверялась)

public List<YourObject> getDataForYourObjects(Cursor c){ 
    List<YourObject> yourObjects = new ArrayList<>(); 
    if(c != null){ 
     while(c.moveToNext(){ 
      //law results 
      long lawsID = c.getLong(0); 
      String lawsText = c.getString(1); 

      //nokt results 
      long noktID = c.getLong(2); 
      String noktText = c.getString(3); 

      YourObject yo = new YourObject(); 
      yo.addLaw(lawID, lawText); 
      yo.addNokt(noktID, noktText); 
      yourObjects.add(yo); 
     } 
     c.close(); 
    } 
    return yourObjects; 
} 

Надеюсь, что это поможет.

Additonal, вы можете изучить учебник по SQLite, например: http://www.tutorialspoint.com/sqlite/, чтобы узнать, как знакомы с sqlite.

также посмотреть в к андроида SQLite Учебник как: https://www.tutorialspoint.com/android/android_sqlite_database.htm , чтобы получить больше информации, что можно с Anroids-SQLite и объекта курсора.

+0

Благодарим вас за помощь. но я хочу использовать несколько listview по информации из базы данных. я хочу, чтобы я хотел получить несколько запросов и использовать их в нескольких классах, можете ли вы мне помочь? –

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