마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SQLite DB 간단 질문.

0 추천
아래는 제 코드의 일부이구요 문제는 갤럭시 s4 에서는 문제없이 실행되는 코드인데, 갤럭시 s7 에서는

db 에서 테이블을 못찾는다는 거에요;; no such table을 띄워요

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "chatRoom.db";

    private static final String LOGIN = "login";
    private static final String CHAT = "chat";
    private static final String ROOM = "room";
    private static final String DATA = "data";

    private static final String CHAT_LIST = "chat_list";
    private static final String CHAT_ROOM = "chat_room";
    private static final String CHAT_NAME = "chat_name";
    private static final String CHAT_TEXT = "chat_text";
    private static final String CHAT_KEY = "chat_key";
    private static final String CHAT_TOKEN = "chat_token";
    private static final String CHAT_PROFILE_IMAGE = "chat_profile_image";
    private static final String CHAT_BADGE = "chat_badge";

    private static final String MY_NAME = "my_name";
    private static final String MY_TOKEN = "my_token";
    private static final String MY_PROFILE_IMAGE = "my_profile_image";

    public ArrayList<String> arrayList;
    public ArrayList<Integer> deleteList;

    private String room_name;
    private String chat_text;

--------------------------------------------------------------------------

    public DBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
    {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        String DATA_TABLE =

                "CREATE TABLE " +

                        DATA + "(" +

                        CHAT_LIST + " INTEGER PRIMARY KEY, " +

                        MY_NAME + " TEXT, " + // my_name
                        MY_TOKEN + " TEXT, " + // my_token
                        MY_PROFILE_IMAGE + " TEXT" + ")"; // user profile_image name

        db.execSQL(DATA_TABLE);

        // CHAT DATA
        String CREATE_CHAT_TABLE =

                "CREATE TABLE " +

                 CHAT + "(" +

                        CHAT_LIST + " INTEGER PRIMARY KEY, " +

                        CHAT_ROOM + " TEXT," +

                        CHAT_NAME + " TEXT," +

                        CHAT_TEXT + " TEXT" + ")";

        db.execSQL(CREATE_CHAT_TABLE);

        // ROOM DATA
        String CHAT_ROOM_TABLE =

                "CREATE TABLE " +

                        ROOM + "(" +

                        CHAT_LIST + " INTEGER PRIMARY KEY, " +

                        CHAT_NAME + " TEXT, " + // room_name(=user_name)

                        CHAT_TEXT + " TEXT, " +

                        CHAT_KEY + " TEXT, " +

                        CHAT_TOKEN + " TEXT, " + // user_token

                        CHAT_PROFILE_IMAGE + " TEXT, " +

                        CHAT_BADGE + " TEXT" + ")"; // profile image

        db.execSQL(CHAT_ROOM_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        db.execSQL("DROP TABLE IF EXISTS " + DATA);
        db.execSQL("DROP TABLE IF EXISTS " + CHAT);
        db.execSQL("DROP TABLE IF EXISTS " + ROOM);

        onCreate(db);
    }

    public void setMyData(String name, String token)
    {
        ContentValues contentValues = new ContentValues();

        contentValues.put(MY_NAME, name); // user name
        contentValues.put(MY_TOKEN, token);

        SQLiteDatabase sqLiteDatabase =this.getWritableDatabase();

        sqLiteDatabase.insert(DATA, null, contentValues);
        sqLiteDatabase.close();
    }

    public String getMyData(String type)
    {
        String query = "SELECT * FROM " + DATA;

        String data = "";

        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();

        Cursor cursor = sqLiteDatabase.rawQuery(query, null); <-- 제가 실행시킨 코드에서 여기서 에러가 발                                                                                       생합니다 no such table 이라고요

        if(cursor.moveToFirst()) {

            switch(type)
            {
                case "NAME" : data = cursor.getString(cursor.getColumnIndex("my_name")); break;

                case "TOKEN" :  data = cursor.getString(cursor.getColumnIndex("my_token")); break;

                default: Log.i("DBHandler-getMyData", "DEFAULT");
            }
        }

        cursor.close();

        sqLiteDatabase.close();

        return data;
    }

 

둘 다 안되면 몰라도 하나만 안되니까 더 모르겠네요; 한번 봐주시고 답변 부탁드립니다!
알파고 (4,320 포인트) 님이 2018년 7월 4일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...