2013-02-14 35 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,插入臉數據庫處理器

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? – 2013-02-14 08:05:49

+0

太好了。太棒了!謝謝! – 2013-02-14 08:08:36

+0

歡迎...... :) – GrIsHu 2013-02-14 08:11:08

2

如果你確信你的數據庫有數據已,試圖改變if(cursor.isFirst())if(cursor.moveToFirst())

+0

謝謝了很多的答覆!來自我的+1! – 2013-02-14 08:09:58

1

嘗試光標。 moveToFirst()條件

if(cursor.moveToFirst()) 
    { 
     do 
     { 

     } 
     while(cursor.moveToNext()); 

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

非常感謝您的回覆!來自我的+1! – 2013-02-14 08:09:12

1

這是因爲你沒有對數據做任何事情。

首先,您必須先將光標位置移動到第一位:cursor.moveToFirst() 然後,您可以在嘗試時啓動while循環。其次,你從來沒有真正把數據放在你的List分支中,你必須首先將光標的數據放在那裏。

+0

非常感謝您的回覆!來自我的+1! – 2013-02-14 08:09:42

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! – 2013-02-14 08:08:56

+0

感謝您的+1! – 2013-02-14 09:22:08