2014-01-05 2 views
0

할 일 목록 응용 프로그램을 만들고 SQLite 데이터베이스를 사용하고 db에 새 항목을 추가 할 때 응용 프로그램이 항상 깨지는 이유는 무엇인지 모릅니다. 종류의 오류. 작업 클래스 :SQLite 데이터베이스에 항목을 추가 할 때 응용 프로그램이 중단되는 이유

public class Task { 
    String name; 
    String discrb; 
    int day , month , year ,donecheck ,periocheck; 
    public Task() 
    { 
     donecheck =0; 
    } 
} 

SQLite의 코드 :이

String create_table= "Create Table" + TABLE_TASKS + " (" + KEY_NAME +" TEXT PRIMARY KEY ," + 
     KEY_DESC +" TEXT , " +KEY_DAY +" INTEGER , "+KEY_MON +" INTEGER , "+KEY_YEAR +" INTEGER , "+ 
     KEY_DONE +" INTEGER , "+KEY_PRI +" INTEGER "+ ") "; 

를 인쇄 할 때

public class TodoDb extends SQLiteOpenHelper { 
    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "todolistdb"; 
    private static final String TABLE_TASKS = "tasks"; 
    private static final String KEY_NAME="Task_Name"; 
    private static final String KEY_DESC ="Description"; 
    private static final String KEY_DAY="Day"; 
    private static final String KEY_MON="Month"; 
    private static final String KEY_YEAR="Year"; 
    private static final String KEY_DONE="Done"; 
    private static final String KEY_PRI="Priority"; 

    public TodoDb(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     String create_table= "Create Table" + TABLE_TASKS + " (" + KEY_NAME +" TEXT PRIMARY KEY ," + 
     KEY_DESC +" TEXT , " +KEY_DAY +" INTEGER , "+KEY_MON +" INTEGER , "+KEY_YEAR +" INTEGER , "+ 
     KEY_DONE +" INTEGER , "+KEY_PRI +" INTEGER "+ ") "; 
     db.execSQL(create_table); 
    } 

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

    // The add task function 
    public void addTask(Task task) 
    { 
     SQLiteDatabase db=this.getWritableDatabase(); 
     ContentValues values=new ContentValues(); 
     values.put(KEY_NAME, task.name); 
     values.put(KEY_DESC, task.discrb); 
     values.put(KEY_DAY, task.day); 
     values.put(KEY_MON, task.month); 
     values.put(KEY_YEAR, task.year); 
     values.put(KEY_DONE, task.donecheck); 
     values.put(KEY_PRI, task.periocheck); 
     db.insert(TABLE_TASKS,null, values); 
     db.close(); 
    } 
} 

그래서 코드

+6

질문과 함께 logcat/stacktrace를 게시하십시오. –

+2

당신은 여기에 공간을 놓친 : 내가 사용되지 않은 모든 공간을 삭제했다 – user2336315

답변

0

에서 오류가 무엇인가는 더 공간이 없다 Table 이후 테이블 생성 구문이 잘못되어이 같은 공간을 부여하십시오

String create_table= "Create Table " + TABLE_TASKS + " (" + KEY_NAME +" TEXT PRIMARY KEY ," + 
      KEY_DESC +" TEXT , " +KEY_DAY +" INTEGER , "+KEY_MON +" INTEGER , "+KEY_YEAR +" INTEGER , "+ 
      KEY_DONE +" INTEGER , "+KEY_PRI +" INTEGER "+ ") "; 
+0

감사합니다'(' "표 만들기"+ TABLE_TASKS 예). '문자열 CREATE_TABLE = "만들기 테이블"+ TABLE_TASKS' 이 Table''후 1 추가 그리고 그것은 작동합니다 :) –

+0

@ user3063267 당신은 환영합니다 –

관련 문제