2013-02-22 67 views
0

我已經成功地將數據插入到使用以下類的表中,但我不知道如何訪問這些數據。另外,我希望把數據表和它們的列內容在數組列表像SQLite訪問表內容

column1--->array1 
column1--->array2 
column1--->array3 
column1--->array4 
public class SQLiteAdapter { 

public static final String MYDATABASE_NAME = "MY_DATABASE"; 
public static final String MYDATABASE_TABLE = "MY_TABLE"; 
public static final int MYDATABASE_VERSION = 1; 
public static final String KEY_ID = "_id"; 
public static final String KEY_CONTENT1 = "Content1"; 
public static final String KEY_CONTENT2 = "Content2"; 
public static final String KEY_CONTENT3 = "Content3"; 
public static final String KEY_CONTENT4 = "Content4"; 



//create table MY_DATABASE (ID integer primary key, Content text not null); 
private static final String SCRIPT_CREATE_DATABASE = 
    "create table " + MYDATABASE_TABLE + " (" 
    + KEY_ID + " integer primary key autoincrement, " 
    + KEY_CONTENT1 + " text not null, " 
    + KEY_CONTENT2 + " text not null, " 
    + KEY_CONTENT3 + " text not null, " 
    + KEY_CONTENT4 + " text not null);"; 

private SQLiteHelper sqLiteHelper; 
private SQLiteDatabase sqLiteDatabase; 

private Context context; 

public SQLiteAdapter(Context c){ 

    this.context=c; 
} 

public SQLiteAdapter openToRead() throws android.database.SQLException { 
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION); 
    sqLiteDatabase = sqLiteHelper.getReadableDatabase(); 
    return this; 
} 

public SQLiteAdapter openToWrite() throws android.database.SQLException { 
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION); 
    sqLiteDatabase = sqLiteHelper.getWritableDatabase(); 
    return this; 
} 

public void close(){ 
    sqLiteHelper.close(); 
} 

public long insert(String content1, String content2, String content3, String content4){ 

    ContentValues contentValues = new ContentValues(); 
    contentValues.put(KEY_CONTENT1, content1); 
    contentValues.put(KEY_CONTENT2, content2); 
    contentValues.put(KEY_CONTENT3, content3); 
    contentValues.put(KEY_CONTENT4, content4); 


    return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues); 
} 

public int deleteAll(){ 
    return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null); 
} 

public Cursor queueAll(){ 
    String[] columns = new String[]{KEY_ID, KEY_CONTENT1, KEY_CONTENT2, KEY_CONTENT3, KEY_CONTENT4}; 
    Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, 
    null, null, null, null, null); 

    return cursor; 
} 

public class SQLiteHelper extends SQLiteOpenHelper { 

    public SQLiteHelper(Context context, String name, 
    CursorFactory factory, int version) { 
    super(context, name, factory, version); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL(SCRIPT_CREATE_DATABASE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    } 
} 
} 

回答

3

要訪問一個數據庫,試試這個。

首先你必須有一個擴展你的SQLiteOpenHelper的類。創建一個新類,擴展SQLiteOpenHelper並在主數據庫開放類中調用它們。

在這裏你去添加這兩個塊,叫他們在你onCreate方法

public Cursor getShow() 
{ 
    SQLiteDatabase db = obj.getReadableDatabase(); 
    Cursor c = db.rawQuery("select * from emp", null); 
    startManagingCursor(c); 
    return c; 
} 

public Cursor getEvent(Cursor c) 
{ 
    StringBuilder sb= new StringBuilder("Data Base:-"); 
    while(c.moveToNext()) 
    { 
     long id = c.getLong(0); 
     String un = c.getString(1); 
     String pw = c.getString(2); 
     String ut = c.getString(3); 
     sb.append("\n"+"id:-"+id+ 
      "\n"+"Username:-"+un+ 
      "\n"+"Password:-"+pw+"\n"+ 
      "\n"+"UserType:-"+ut+"\n" 
     ); 
    } 
    tvTools.setText(sb); 
    return c; 
} 

這取我以前創建並在TextView顯示它們三列。現在在onCreate()中調用這些方法。

Cursor c = getShow(); 
getEvent(c); 

它每次都適合我。

+0

謝謝@kirk :) – 2013-02-22 20:33:14