2015-02-03 2 views
0

내 Android Eclipse 프로젝트에 일부 데이터를 저장하는 SQLite 테이블을 삽입하고 SQLite 테이블의 첫 번째 행을 반환하려고합니다.Eclipse 내 SQLite 테이블의 첫 번째 행을 반환하는 방법

내 데이터베이스 클래스는

DataBaseHandler db; 
     db = new DataBaseHandler(getApplicationContext());//Your table is created now 

     db.addData("d1e14b170ff4418693fd0ceb4987adda","string2","string3","string4"); 
     db.addData("6102a756d92e40d392a4e0ebcb53edb5", "string6", "string7","string8"); 
     db.addData("9d78a74cf93e479f8e08b47072264b66", "string10", "string11","string12"); 
     db.addData("482f894ae06746439d86f8e5efa26914", "string14", "string15","string16"); 

지금 내가의 onResume에서 원하는 내 MainActivity에서 DataBaseHandler.java

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 


    public class DataBaseHandler extends SQLiteOpenHelper { 

    // Database Version 
    private static final int DATABASE_VERSION = 2; 
    // Database Name 
    private static final String DATABASE_NAME = "My_SQLite_Database.db"; 

    //constructor for this class 
    public DataBaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    // Creating the Table when the class is executed  
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_TABLE = "CREATE TABLE " + "My_SQLite_Database" + "(" 
       + "Image_ID" + " TEXT," 
       + "Image" + " TEXT," + "Title" + " TEXT," + "Info" + " TEXT" + ")"; 
     db.execSQL(CREATE_TABLE);//executing the create table query 
    } 

    //for inserting data into this table write the following method 
     public void addData(String field1, String field2, String field3, String field4) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put("Image_ID", field1); 
     values.put("Image", field2); 
     values.put("Title", field3); 
     values.put("Info", field4); 

     // Inserting Row 
     db.insert("My_SQLite_Database", null, values); 
     db.close(); // Closing database connection 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     Log.w(DataBaseHandler.class.getName(), 
       "Upgrading database from version " + oldVersion + " to " 
        + newVersion + ", which will destroy all old data"); 
      db.execSQL("DROP TABLE IF EXISTS " + "My_SQLite_Database"); 
      onCreate(db); 
    } 
} 

내가 내에서 onCreate (4 열 4 개 행을 가진) 내 SQLite는 테이블을 초기화입니다 내 MainActivity 내 코드의 특정 지점에서 내 SQLite 테이블의 첫 번째 행을 반환합니다. 어떻게해야합니까?

+2

이 StackOverflow의 질문을 살펴보십시오 getContact 같은 방법

// ---retrieves a particular contact, written in DataBaseHandler--- public Cursor getContact(String rowId) throws SQLException { SQLiteDatabase db = this.getReadableDatabase(); Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { KEY_IMAGEID, KEY_TITLE, KEY_INFO }, KEY_IMAGEID + " LIKE '" + rowId + "'", null, null, null, null, null); if (mCursor != null) { if (mCursor.getCount() < 1) { Log.e("GetContact", "cursor empty for " + KEY_IMAGEID + "=\"" + rowId + "\""); } } else Log.e("GetContact", "cursor null"); return mCursor; } 

가 // 주요 활동 호출이 올바른 방향으로 시작하려면 - [SQLite는에 존재하는 경우 첫 번째 행의 데이터를 가져 오기 (HTTP ://stackoverflow.com/questions/22111313/get-first-row-data-if-exist-in-sqlite) –

+2

... 자신에게 은혜를 베풀어 라. ** 쓸모없는 문자열 연결을 피하라 ** (오직 쓸모없는 문자열 만) . –

답변

0

-> 문제 solved.It 마법처럼 작동하고 특정 SQLite는 행을 < 검색 - 나는 특정 행을 검색 할 DataBaseHandler.java에 getContact 같은 이름의 메소드를 삽입 내 MainActivity라고 불렀다

합니다.

public void DisplayContact(Cursor c) { 
      Toast.makeText(
        this, 
        "Image_ID:" + c.getString(0) + "\n" + "Title:" + c.getString(1) 
          + "\n" + "Info:" + c.getString(2), Toast.LENGTH_LONG) 
        .show(); 

DataBaseHandler db; 
     db = new DataBaseHandler(getApplicationContext());// Your table is 
                  // created now 

     db.open(); 

     Cursor c = db.getContact("24"); 
     System.out.println("Cursor size " + c.getCount()); 
     if (c.moveToFirst()) { 

      DisplayContact(c); // edo kalei ti methodo DisplayContact pou 
           // tiponei tin 
           // 2i grammi tou SQLite Table 
     } else 
      Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show(); 
     db.close(); 
     } 
관련 문제