2011-10-17 2 views
1

나는 jokes.db 데이터베이스를 가지고 있습니다. 이 기사를 사용하여 가져온이 데이터베이스 파일. http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/. 지금은 입니다. Jokes.db에서 /data/data/a.b.c/database/Jokes.db입니다. 이 데이터베이스에는 두 테이블이 있습니다 NepaliJokesEnglishJokes. 자 이제이 네팔어와 영어 농담을 배우고 textview에 표시하고 싶습니다. 그러나 다음 코드를 수행했지만 데이터베이스에서 데이터를 검색하는 방법에 대해 더 이상 생각할 수 없었습니다.안드로이드 데이터베이스에서 데이터를 검색하는 방법 SqliteBrowser에서 데이터베이스 만들기

public class FunnyJokes extends Activity implements View.OnClickListener { 
private SQLiteDatabase database; 

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

    back = (Button) findViewById(R.id.back_btn); 
    back.setOnClickListener(this); 

    DataBaseHelper helper = new DataBaseHelper(this); 
    database = helper.getWritableDatabase(); 
    loadJokes(); 
} 

private void loadJokes() { 
    //jok=new ArrayList<String>(); 
     /*Cursor c = database.query("SELECT title,body" + 
              " FROM " + 'tableName' 
              + " WHERE category=1;", 
              null);*/ 
    Cursor c = database.query("NepaliJokes", 
       null, null, null, null, null, null); 

c.moveToPosition(0); 
TextView tv= (TextView) findViewById(R.id.textView1); 
tv.append(c.getString(1)); 
c.close(); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.back_btn: 
     FunnyJokes.this.finish(); 
     break; 

    default: 
     break; 
    } 

} 
} 

또한 DDMS-> fileExploer에서 데이터베이스 파일 가져 오기를 사용합니다. 데이터베이스 파일 가져 오기 파일 탐색기 섹션의 왼쪽에서 모바일 아이콘을 당깁니다.

답변

2

를 방문 할 수 있습니다 :

  1. 는 데이터베이스에서 데이터를 읽을 수있는 커서를 만듭니다.

    다음 기능을 작성하십시오.

    public Cursor retrieveRecords(int category) 
    { 
        Cursor c = null; 
        c = db.rawQuery("select title,body from tablename where category=" +category, null); 
    return c; 
    } 
    
  2. 이제 커서에서 값을 가져옵니다.

    public void getDataFromDatabase() 
    { 
        try 
        { 
         Cursor cursor = null; 
         db.OpenDatabase(); 
         cursor = db.retrieveRecords(); 
         if (cursor.getCount() != 0) 
         { 
          if (cursor.moveToFirst()) 
          { 
           do 
           { 
            titleArrayList.add(cursor.getString(cursor.getColumnIndex("title"))); 
            bodyArrayList.add(cursor.getString(cursor.getColumnIndex("body"))); 
           } while (cursor.moveToNext()); 
          } 
          db.closeDatabase(); 
         } 
         cursor.close(); 
        } 
        catch(Exception e) 
        { 
         e.printStackTrace(); 
        } 
    } 
    
1

내 응용 프로그램에서 데이터베이스 관리를 위해 휴면 클래스를 사용하고 있습니다.

public class PersonDbHelper { 
public class Row_DocumentTable extends Object { 
    public int rwo_id; 
    public String dockey; 
    public String docid; 
    public String size; 
    public String status; 
    public String name; 
    public String product_discription; 
    public String type; 
    public String publisher; 
    public String version; 
    public String filepathurl; 
    public String basepage; 
    public String copypaste; 
    public String save; 
    public String print; 
    public String printablepage; 
    public String nonprintablepage; 
    public String search; 
    public String watermarkimageurl; 
    public String expiry; 
    public String versiondescription; 
    public String update_available; 
    public String localfilepath; 
} 

public class Row_CategoriesTable extends Object { 

    public String dockey; 
    public String category_id; 
    public String category_name; 

} 

private static final String DROP_DOCUMENTDETAIL_TABLE_FROM_DATABASE = "drop table if exists CONTENTRAVENDB.DOCUMENTDETAIL"; 
private static final String DROP_CATEGORIES_TABLE_FROM_DATABASE = "drop table if exists CONTENTRAVENDB.CATEGORIES"; 

private static final String DATABASE_CREATE_DOCUMENTDETAIL = "create table DOCUMENTDETAIL(row_id integer primary key autoincrement, dockey text , " 
     + "docid text not null," 
     + "size text not null," 
     + "status text not null," 
     + "name text not null," 
     + "product_discription text not null," 
     + "type text not null," 
     + "publisher text not null," 
     + "version text not null," 
     + "filepathurl text not null," 
     + "basepage text not null," 
     + "copypaste text not null," 
     + "save text not null," 
     + "print text not null," 
     + "printablepage text not null," 
     + "nonprintablepage text not null," 
     + "search text ," 
     + "watermarkimageurl text not null," 
     + "expiry text not null," 
     + "versiondescription text not null," 
     + "update_available text not null," 
     + "localfilepath text not null" 
     + ");"; 

private static final String DATABASE_CREATE_CATEGORIES = "create table CATEGORIES(_id integer primary key autoincrement, " 
     + "dockey text ," 
     + "category_id text ," 
     + "category_name text" 
     + ");"; 

private static final String DATABASE_NAME = "CONTENTRAVENDB"; 

private static final String DATABASE_TABLE1 = "CATEGORIES"; 
private static final String DATABASE_TABLE2 = "DOCUMENTDETAIL"; 

private static final int DATABASE_VERSION = 1; 

private SQLiteDatabase db; 

public PersonDbHelper(Context ctx) { 

    db = ctx.openOrCreateDatabase(DATABASE_NAME, DATABASE_VERSION, null); 
    db.execSQL(DATABASE_CREATE_DOCUMENTDETAIL); 
    db.execSQL(DATABASE_CREATE_CATEGORIES); 
} 

public void dropAllTable(Context ctx) { 

    db = ctx.openOrCreateDatabase(DATABASE_NAME, DATABASE_VERSION, null); 
    // db.execSQL(DROP_DOCUMENTDETAIL_TABLE_FROM_DATABASE); 
    // db.execSQL(DROP_CATEGORIES_TABLE_FROM_DATABASE); 
    db.delete(DATABASE_TABLE1, null, null); 
    db.delete(DATABASE_TABLE2, null, null); 
    close(); 
} 

public PersonDbHelper(Context ctx, String abc) { 

    db = ctx.openOrCreateDatabase(DATABASE_NAME, DATABASE_VERSION, null); 
} 

public PersonDbHelper() { 
} 

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

public void createRow_InDocumentDetailTable(String dockey, String docid, 
     String size, String status, String name, 
     String product_discription, String type, String publisher, 
     String version, String filepathurl, String basepage, 
     String copypaste, String save, String print, String printablepage, 
     String nonprintablepage, String search, String watermarkimageurl, 
     String expiry, String versiondescription, String update_available, 
     String localfilepath) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put("dockey", dockey); 
    initialValues.put("docid", docid); 
    initialValues.put("size", size); 
    initialValues.put("status", status); 
    initialValues.put("name", name); 
    initialValues.put("product_discription", product_discription); 
    initialValues.put("type", type); 
    initialValues.put("publisher", publisher); 
    initialValues.put("version", version); 
    initialValues.put("filepathurl", filepathurl); 
    initialValues.put("basepage", basepage); 
    initialValues.put("copypaste", copypaste); 
    initialValues.put("save", save); 
    initialValues.put("print", print); 
    initialValues.put("printablepage", printablepage); 
    initialValues.put("nonprintablepage", nonprintablepage); 
    initialValues.put("search", search); 
    initialValues.put("watermarkimageurl", watermarkimageurl); 
    initialValues.put("expiry", expiry); 
    initialValues.put("versiondescription", versiondescription); 
    initialValues.put("update_available", update_available); 
    initialValues.put("localfilepath", localfilepath); 
    db.insert(DATABASE_TABLE2, null, initialValues); 
} 

public void createRow_InCategorieTable(String dockey, String category_id, 
     String category_name) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put("dockey", dockey); 
    initialValues.put("category_id", category_id); 
    initialValues.put("category_name", category_name); 

    db.insert(DATABASE_TABLE1, null, initialValues); 
} 

public void deleteRow_FromDocumentDetailTable(long rowId) { 
    db.delete(DATABASE_TABLE2, "_id=" + rowId, null); 
} 

public List<Row_DocumentTable> fetchAllRows_FromDocumentDetailTable() { 
    ArrayList<Row_DocumentTable> ret = new ArrayList<Row_DocumentTable>(); 
    try { 

     String sql = "select * from DOCUMENTDETAIL"; 

     Cursor c = db.rawQuery(sql, null); 

     // Cursor c = 
     // db.query(DATABASE_TABLE2, new String[] { 
     // "row_id","dockey","docid","size", "status", "name", 
     // "product_discription", 
     // "type", "publisher", "version", "filepathurl", "basepage" 
     // , "copypaste", "save", "print", "printablepage", 
     // "nonprintablepage" 
     // , "search", "watermarkimageurl", "expiry", 
     // "versiondescription","update_available","localfilepath" 
     // }, null, null, null, null, null); 
     int numRows = c.getCount(); 
     c.moveToFirst(); 
     for (int i = 0; i < numRows; ++i) { 
      Row_DocumentTable row = new Row_DocumentTable(); 
      row.rwo_id = c.getInt(0); 
      row.dockey = c.getString(1); 
      row.docid = c.getString(2); 
      row.size = c.getString(3); 
      row.status = c.getString(4); 
      row.name = c.getString(5); 
      row.product_discription = c.getString(6); 
      row.type = c.getString(7); 
      row.publisher = c.getString(8); 
      row.version = c.getString(9); 
      row.filepathurl = c.getString(10); 
      row.basepage = c.getString(11); 
      row.copypaste = c.getString(12); 
      row.save = c.getString(13); 
      row.print = c.getString(14); 
      row.printablepage = c.getString(15); 
      row.nonprintablepage = c.getString(16); 
      row.search = c.getString(17); 
      row.watermarkimageurl = c.getString(18); 
      row.expiry = c.getString(19); 
      row.versiondescription = c.getString(20); 
      row.update_available = c.getString(21); 
      row.localfilepath = c.getString(22); 
      ret.add(row); 
      c.moveToNext(); 
     } 
    } catch (SQLException e) { 
     Log.e("Exception on query", e.toString()); 
    } 
    return ret; 
} 

public List<Row_DocumentTable> fetchAllRows_Of_Single_Type(String argtype) { 
    ArrayList<Row_DocumentTable> ret = new ArrayList<Row_DocumentTable>(); 
    try { 
     String sql = "select * from DOCUMENTDETAIL where type='" + argtype 
       + "'"; 

     Cursor c = db.rawQuery(sql, null); 
     // Cursor c=db.query(DATABASE_TABLE2, new String[] { 
     // "dockey","docid", "status", "name", "product_discription", 
     // "type", "publisher", "version", "filepathurl", "basepage" 
     // , "copypaste", "save", "print", "printablepage", 
     // "nonprintablepage" 
     // , "search", "watermarkimageurl", "expiry", "versiondescription" 
     // }, "type=PDF", null, null, null, null); 
     int numRows = c.getCount(); 
     c.moveToFirst(); 
     for (int i = 0; i < numRows; ++i) { 
      Row_DocumentTable row = new Row_DocumentTable(); 
      row.rwo_id = c.getInt(0); 
      row.dockey = c.getString(1); 
      row.docid = c.getString(2); 
      row.size = c.getString(3); 
      row.status = c.getString(4); 
      row.name = c.getString(5); 
      row.product_discription = c.getString(6); 
      row.type = c.getString(7); 
      row.publisher = c.getString(8); 
      row.version = c.getString(9); 
      row.filepathurl = c.getString(10); 
      row.basepage = c.getString(11); 
      row.copypaste = c.getString(12); 
      row.save = c.getString(13); 
      row.print = c.getString(14); 
      row.printablepage = c.getString(15); 
      row.nonprintablepage = c.getString(16); 
      row.search = c.getString(17); 
      row.watermarkimageurl = c.getString(18); 
      row.expiry = c.getString(19); 
      row.versiondescription = c.getString(20); 
      row.update_available = c.getString(21); 

      ret.add(row); 
      c.moveToNext(); 
     } 
    } catch (SQLException e) { 
     Log.e("Exception on query", e.toString()); 
    } 
    return ret; 
} 

public List<Row_CategoriesTable> fetchAllRows_FromCategorieTable(
     String argsql) { 
    ArrayList<Row_CategoriesTable> ret = new ArrayList<Row_CategoriesTable>(); 
    try { 

     String sql = argsql; 
     Cursor c = db.rawQuery(sql, null); 
     // Cursor c = 
     // db.query(true,DATABASE_TABLE1, new String[] { 
     // "dockey","category_id","category_name" 
     // }, null,null,null, null, null,null); 
     int numRows = c.getCount(); 
     c.moveToFirst(); 
     for (int i = 0; i < numRows; ++i) { 
      Row_CategoriesTable row = new Row_CategoriesTable(); 
      row.dockey = c.getString(0); 
      row.category_id = c.getString(0); 
      row.category_name = c.getString(0); 

      ret.add(row); 
      c.moveToNext(); 
     } 
    } catch (SQLException e) { 
     Log.e("Exception on query", e.toString()); 
    } 
    return ret; 
} 

public Row_DocumentTable fetchRow_FromDocumentDetailTableByDocKey(
     String dockey) { 
    Row_DocumentTable row = new Row_DocumentTable(); 
    String sql = "select * from DOCUMENTDETAIL where dockey='" + dockey 
      + "'"; 
    try { 
     Cursor c = db.rawQuery(sql, null); 

     // Cursor c = 
     // db.query(DATABASE_TABLE2, new String[] { 
     // "dockey","docid", "status", "name", "product_discription", 
     // "type", "publisher", "version", "filepathurl", "basepage" 
     // , "copypaste", "save", "print", "printablepage", 
     // "nonprintablepage" 
     // , "search", "watermarkimageurl", "expiry", "versiondescription"}, 
     // "dockey=" + dockey, null, null, 
     // null,null,"name desc"); 
     if (c.getCount() > 0) { 
      c.moveToFirst(); 
      row.rwo_id = c.getInt(0); 
      row.dockey = c.getString(1); 
      row.docid = c.getString(2); 
      row.size = c.getString(3); 
      row.status = c.getString(4); 
      row.name = c.getString(5); 
      row.product_discription = c.getString(6); 
      row.type = c.getString(7); 
      row.publisher = c.getString(8); 
      row.version = c.getString(9); 
      row.filepathurl = c.getString(10); 
      row.basepage = c.getString(11); 
      row.copypaste = c.getString(12); 
      row.save = c.getString(13); 
      row.print = c.getString(14); 
      row.printablepage = c.getString(15); 
      row.nonprintablepage = c.getString(16); 
      row.search = c.getString(17); 
      row.watermarkimageurl = c.getString(18); 
      row.expiry = c.getString(19); 
      row.versiondescription = c.getString(20); 
      row.update_available = c.getString(21); 
      row.localfilepath = c.getString(22); 
      return row; 

     } else { 
      row.docid = null; 
      row.dockey = row.name = null; 
     } 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } 
    return row; 
} 

public void updateRow_InDocumentDetailTableByDocKey(String dockey, 
     String docid, String status, String name, 
     String product_discription, String type, String publisher, 
     String version, String filepathurl, String basepage, 
     String copypaste, String save, String print, String printablepage, 
     String nonprintablepage, String search, String watermarkimageurl, 
     String expiry, String versiondescription, String update_available) { 
    ContentValues args = new ContentValues(); 

    args.put("dockey", dockey); 
    args.put("docid", docid); 
    args.put("status", status); 
    args.put("name", name); 
    args.put("product_discription", product_discription); 
    args.put("type", type); 
    args.put("publisher", publisher); 
    args.put("version", version); 
    args.put("filepathurl", filepathurl); 
    args.put("basepage", basepage); 
    args.put("copypaste", copypaste); 
    args.put("save", save); 
    args.put("print", print); 
    args.put("printablepage", printablepage); 
    args.put("nonprintablepage", nonprintablepage); 
    args.put("search", search); 
    args.put("watermarkimageurl", watermarkimageurl); 
    args.put("expiry", expiry); 
    args.put("versiondescription", versiondescription); 
    args.put("update_available", update_available); 

    db.update(DATABASE_TABLE2, args, "dockey='" + dockey + "'", null); 
} 

public Cursor GetAllRows() { 
    try { 
     return db.query(DATABASE_TABLE2, new String[] { "dockey", "docid", 
       "status", "name", "product_discription", "type", 
       "publisher", "version", "filepathurl", "basepage", 
       "copypaste", "save", "print", "printablepage", 
       "nonprintablepage", "search", "watermarkimageurl", 
       "expiry", "versiondescription" }, null, null, null, null, 
       null); 
    } catch (SQLException e) { 
     Log.e("Exception on query", e.toString()); 
     return null; 
    } 
} 

public void updateRow_InDocumentDetailTableByDocKey_UpdateAvl(Context ctx, 
     String dockey, String update_available) { 

    db = ctx.openOrCreateDatabase(DATABASE_NAME, DATABASE_VERSION, null); 
    ContentValues args = new ContentValues(); 
    args.put("update_available", update_available); 

    db.update(DATABASE_TABLE2, args, "dockey='" + dockey + "'", null); 
} 

public void updateRow_InDocumentDetailTableByDocKey_LocalFilePath(
     Context ctx, String dockey, String argLocalFilePath) { 

    db = ctx.openOrCreateDatabase(DATABASE_NAME, DATABASE_VERSION, null); 
    ContentValues args = new ContentValues(); 
    args.put("localfilepath", argLocalFilePath); 

    db.update(DATABASE_TABLE2, args, "dockey='" + dockey + "'", null); 
} 

}

나는 두 개의 테이블이 모든 쿼리 삽입 업데이트 삭제가 잘 작동되는 코드를 사용하여 선택 CreateTable에서 적용됩니다. 도움이되기를 바랍니다. 당신이 실제로 버튼

answere를 클릭하여 모든의

+0

나는 SQliteBrowser에서 DATBASE 파일을 만들었습니다. 코드에서 테이블을 만들 필요가 없습니다. 파일을 가져온 것입니다. 코드에서 테이블을 만들지 않고 데이터를 다시 얻을 수있는 아이디어. –

+0

나는 당신이 원하는 것을 이해하지 못한다. 내게 더 분명히 해달라고. 내가 너에게 뭔가를 줄지도 모른다. – DynamicMind

+0

나는 데이터베이스 파일 Jokes.db를 하나 가지고있다. Sqlite 브라우저에서 코드를 통해 만들지 않았습니다 (외부에서 생성). 내 응용 프로그램에서 해당 데이터베이스를 검색하는 방법. 내 질문을 신중하게 봐라. –

1

먼저 u는 다음 하시다면 다음 농담 이전에 추가됩니다 추가 사용 및 텍스트 뷰는 농담을 보여 주면 때문에 대신의 setText를 사용 tv.append 사용하지 않는 충분히 길다. 나는 내 블로그에서 ansere를 작성했다. 코드가 정확히 무엇을하는지에 대한 링크를 보아라. 그러나 나는 한 테이블을 만들었고, 비슷한 테이블을 더 추가 할 수있다.

당신은 테이블에서 값을 읽으려면 HERE

관련 문제