2013-02-14 5 views
0

Пожалуйста, посмотрите на следующий кодНевозможно получить данные из SQLite

DatabaseHandler.java

Код, используемый для извлечения данных

public List<String> getAllBranches() { 
     // TODO Auto-generated method stub 

     String selectQuery = "select city from BranchNetwork"; 

     Cursor cursor = database.rawQuery(selectQuery, null); 
     List <String>branches = new ArrayList<String>(); 

     if(cursor.isFirst()) 
     { 
      do 
      { 

      } 
      while(cursor.moveToNext()); 

      Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show(); 
     } 

     return branches; 
    } 

Код, используемый для вставки данных

public String insertData(String city, String streetAddress,String phoneNumber1, String phoneNumber2, String email) 
    { 
     String insertQuery = "insert into BranchNetwork ('city','streetAddress','phoneNumber1','phoneNumber2','email') values('"+city+"','"+streetAddress+"','"+phoneNumber1+"','"+phoneNumber2+"','"+email+"');"; 




     try 
     { 
      database.execSQL(insertQuery); 


      return "Data Successfully Inserted"; 

     } 
     catch(Exception e) 
     { 
      Toast.makeText(context, "Exception: "+e.getMessage(), Toast.LENGTH_LONG).show(); 
      return "Data Insertion Failed"; 
     } 

    } 

Form.java

Первый вид деятельности. Здесь я извлекаю данные и вставляю данные. Ниже приводится информация о том, как я извлекаю данные

public class Form extends Activity { 
    private List<String>branches = new ArrayList<String>(); 
     private DatabaseConnector databaseConnector; 
    String[]arr; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_form); 

      databaseConnector = DatabaseHandler.getInstance(this); 
      databaseConnector.createConnection(); 

      branches = databaseConnector.getAllBranches(); 

      arr = branches.toArray(new String[branches.size()]); 
    } 
} 

Но, я никогда ничего не получаю! В DatabaseHandler.java я создал Toast, где он должен генерировать сообщение при извлечении кода. Но это ничего не генерирует! Я загружаю данные в ListView, но он также пуст! Почему это? Пожалуйста помоги!

PS: Ниже приводится DatabaseConnector.java, вставка лица для DatabaseHandler

package com.example.esoftcallmanager; 

import java.util.List; 

import android.content.Context; 

public interface DatabaseConnector 
{ 
    public void createConnection(); 
    public void closeConnection(); 
    public String getPhoneNumber(); 
    public String insertData(String city, String streetAddress, String phoneNumber1, String phoneNumber2, String email); 
    public List<String>getAllBranches(); 

} 

ответ

0

Вы забудете добавить данные в свой массив списка. Попробуйте, как показано ниже:

String selectQuery = "select city from BranchNetwork"; 
    Cursor cursor = database.rawQuery(selectQuery, null); 
    List <String> branches = new ArrayList<String>(); 
    String str=null; 
    cursor.moveToFirst(); 
     do 
     { 
     str= m_cursor.getString(m_cursor.getColumnIndex("city")); 
      branches.add(str); 
     } 
     while(cursor.moveToNext()); 
     Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show(); 
    } 
     return branches; 
+0

Спасибо за ответ. что такое m_cursor? –

+0

Отлично. Это замечательно! Спасибо! –

+0

Добро пожаловать ...... :) – GrIsHu

2

Если вы уверены, что ваша база данных содержит данные уже, попробуйте изменить if(cursor.isFirst()) к if(cursor.moveToFirst())

+0

Спасибо большое за ответ! +1 от меня! –

1

попробовать курсор. moveToFirst() Условие

if(cursor.moveToFirst()) 
    { 
     do 
     { 

     } 
     while(cursor.moveToNext()); 

     Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show(); 
    } 
+0

Большое спасибо за ответ! +1 от меня! –

1

Это потому, что вы ничего не делаете с данными ,

Прежде всего, вам нужно сначала переместить позицию курсора: cursor.moveToFirst() После этого вы можете запустить цикл while, как вы пытаетесь сделать.

Во-вторых, вы никогда не помещаете данные в свои ветви списка, вам сначала нужно будет перенести данные из курсора.

+0

Большое спасибо за ответ! +1 от меня! –

1

Надеюсь, что это сработает.

public List<String> getAllBranches() { 
      // TODO Auto-generated method stub 

      String selectQuery = "select city from BranchNetwork"; 
      Cursor cursor = database.rawQuery(selectQuery, null); 
      List <String>branches = new ArrayList<String>(); 

      if(cursor != null){ 
       cursor.moveToFirst(); 

       Toast.makeText(context, "Data Retrieved: ", Toast.LENGTH_LONG).show(); 

       do 
       { 

       } 
       while(cursor.moveToNext()); 



      } 



       return branches; 
     } 
+0

Большое спасибо за ответ! +1 от меня! –

+0

Спасибо за ваш +1! –

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