2013-02-22 2 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

thanks @kirk :) –