2015-01-11 35 views
1

如何獲得所有表是我在SQlite數據庫創建的字符串數組??請給我建議。在此先感謝我的數據庫類,如下從sqlite數據庫獲取所有表名列表到數組android

private static class DBHelper extends SQLiteOpenHelper { 

    /* public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
     super(context, name, factory, version); 
    }*/ 
    public DBHelper(Context context) { 
     super(context, DB_NAME, null, DB_VIRSION); 
     // TODO Auto-generated constructor stub 
    } 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE "+DB_TABLE+" ("+ 
         KEY_ROWID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
         KEY_NAME+" TEXT NOT NULL, "+ 
         KEY_MOBILE+" NUMBER NOT NULL, "+ 
         KEY_DATE+" TEXT NOT NULL);" 
     ); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS "+DB_TABLE); 
    } 
} 
public MyDatabase(Context c){ 
    ourContext=c; 
} 
public MyDatabase open(){ 
    ourHelper=new DBHelper(ourContext); 
    ourDatabase=ourHelper.getWritableDatabase(); 
    return this; 
} 
public void close(){ 
    ourHelper.close(); 
} 

回答

4

試試這個代碼示例

ArrayList<String> arrTblNames = new ArrayList<String>(); 
SqlHelper sqlHelper = new SqlHelper(this, "TK.db", null, 1); 
SQLiteDatabase DB = sqlHelper.getWritableDatabase(); 
Cursor c = DB.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null); 

     if (c.moveToFirst()) { 
      while (!c.isAfterLast()) { 
       arrTblNames.add(c.getString(c.getColumnIndex("name"))); 
       c.moveToNext(); 
      } 
     } 
0

我解決問題,這樣的代碼

public ArrayList<String> getAllTable() { 

    ArrayList<String> arrTblNames = new ArrayList<String>(); 
    Cursor c = ourDatabase.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null); 
    c.moveToFirst(); 
    while (!c.isAfterLast()) { 

     arrTblNames.add(c.getString(c.getColumnIndex("name"))); 
     c.moveToNext(); 
    } 
    // make sure to close the cursor 
    c.close(); 
    return arrTblNames; 
} 
+0

是如何從我的答案是不同的以外返回列表在方法 – Prem

+0

你的答案是寫,但我不明白你的答案中的這一行SqlHelper sqlHelper = new SqlHelper(this,「TK.db」,null,1); ,感謝您的重播。並且這兩個代碼都可以解決我的問題 –

相關問題