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

no such table

0 추천
package com.example.final_view.database;

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

import com.example.final_view.model.Busstation;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 정균 on 2017-07-21.
 */

public class DatabaseHelper extends SQLiteOpenHelper
{
    public static final  String DATABASE_NAME = "sample.db";
    public static final String DBLOCATION = null;/*"/data/data/com.example.final_view.database/databases/"*/
    public static final int DATABASE_VERSION = 3;


    private Context mContext;
    private SQLiteDatabase mDatabase;

    public DatabaseHelper (Context context)
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database Operations", "Database created");
        this.mContext = context;
    }


    public static final String TABLE_NAME = "sample";
    public static final String BUSSTOP_ID="BUSSTOP_ID";
    public static final String BUSSTOP_NAME="BUSSTOP_NAME";
    public static final String NAME_E="NAME_E";
    public static final String LONGITUDE="LONGITUDE";
    public static final String LATITUDE="LATITUDE";
    public static final String ARS_ID="ARS_ID";
    public static final String NEXT_BUS="NEXT_BUS";
    public static final String NUM="NUM";
    public static final String STATION_LIST_Id="STATION_LIST_Id";


    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL("CREATE TABLE" + TABLE_NAME + "("+BUSSTOP_ID + "INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"+BUSSTOP_NAME+"TEXT"+NAME_E+"TEXT"+ARS_ID+
                "TEXT"+LATITUDE+"TEXT"+LONGITUDE+"TEXT"+NEXT_BUS+"TEXT"+NUM+"TEXT"+STATION_LIST_Id+"TEXT);");

      }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
        onCreate(db);
    }

    public  void openDatabase()
    {
        String dbPath = mContext.getDatabasePath(DATABASE_NAME).getPath();
        if (mDatabase != null && mDatabase.isOpen())
        {
            return;
        }
        mDatabase = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);
    }

        //db종료
    public  void closeDatabase()
    {
        if (mDatabase!=null)
        {
            mDatabase.close();
        }
    }
    //Method 값입력
    public List<Busstation>getListProduct()
    {
        Busstation busstation = null;
        List<Busstation> busstationList = new ArrayList<>();
        openDatabase();
        Cursor cursor = mDatabase.rawQuery(" SELECT * FROM sample ",null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast())
        {
            busstation =new Busstation(cursor.getInt(0), cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),cursor.getString(7),cursor.getString(8));
            busstationList.add(busstation);
            cursor.moveToNext();
        }
        cursor.close();
        closeDatabase();
    return busstationList;
    }


}
 E/SQLiteLog: (1) no such table: sample
07-23 04:57:17.432 3631-3631/com.example.final_view D/AndroidRuntime: Shutting down VM
07-23 04:57:17.442 3631-3631/com.example.final_view E/AndroidRuntime: FATAL EXCEPTION: main
                                                                      Process: com.example.final_view, PID: 3631
                                                                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.final_view/com.example.final_view.MainActivity}: android.database.sqlite.SQLiteException: no such table: sample (code 1): , while compiling: SELECT * FROM sample
db에 있는 table 명이랑 똑같이 줬는데 에러가 나옵니다!!!
고수님들 한번봐주시면 감사합니다!!! 
모르는게많습니다 (120 포인트) 님이 2017년 7월 23일 질문

2개의 답변

0 추천
public void onCreate(SQLiteDatabase db)
    {
        db.execSQL("CREATE TABLE" + TABLE_NAME + "("+BUSSTOP_ID + "INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+BUSSTOP_NAME+"TEXT,"+NAME_E+"TEXT,"+ARS_ID+
                "TEXT,"+LATITUDE+"TEXT,"+LONGITUDE+"TEXT,"+NEXT_BUS+"TEXT,"+NUM+"TEXT,"+STATION_LIST_Id+"TEXT);");

      }
 
테이블 생성시 ','  콤마로 테이블을 구분하셔야할것 같은데요?
판다 (220 포인트) 님이 2017년 7월 23일 답변
아아 테이블이아니라 column
0 추천

로그같은거 찍어보시면 분명 쿼리문이 스페이스가 없어서 일단 에러날것같고. (ex :

CREATE TABLE" + TABLE_NAME + 
"CREATE TABLE " + TABLE_NAME + 

 ) 자세히 안봤지만 먼저 답하신분 말씀대로 컬럼이 여러개면 쉼표로 구문하셔야합니다

익명사용자 님이 2017년 7월 24일 답변
...