2014-03-04 7 views
0

여기 내 코드입니다, 나는 같은 문제가있는 사람들을 보았고 일반적으로 공간이나 뭔가를 잃어 버렸습니다. .안드로이드 오류 "SQLiteException : near"1 ": 구문 오류 (코드 1)

public class TimingsDb { 

public static final String KEY_ID = "_id"; 
public static final String KEY_SUBJECT = "subject_name"; 
public static final String KEY_WEEK = "1"; 
public static final String KEY_DAY = "day_name"; 
public static final String KEY_LESSON = "1"; 

private static final String DATABASE_NAME = "TimingsDB"; 
private static final String DATABASE_TABLE = "TimingsTable"; 
private static final int DATABASE_VERSION = 1; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper { 

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

    }// end Constructor 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ID 
       + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_SUBJECT 
       + " TEXT, " + KEY_WEEK + " INTEGER, " + KEY_DAY 
       + " TEXT, " + KEY_LESSON + " INTEGER);"); 
    }// end onCreate 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE); 
     onCreate(db); 
    }//end onUpgrade 
}// end class 

public TimingsDb(Context c){ 
    ourContext = c; 
} 

public TimingsDb open() throws SQLException{ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 
}//end open 

public void close(){ 
    ourHelper.close(); 
}//end close 

public long createEntry(String subjectToAdd, int week, String day, int lesson) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_SUBJECT, subjectToAdd); 
    cv.put(KEY_WEEK, week); 
    cv.put(KEY_DAY, day); 
    cv.put(KEY_LESSON, lesson); 
    return ourDatabase.insert(DATABASE_TABLE, null, cv); 
}//end createEntry 

public String getData() { 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{KEY_ID, KEY_SUBJECT, KEY_WEEK, KEY_DAY, KEY_LESSON}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE,columns,null,null,null,null,null); 
    String result = ""; 
    int iId = c.getColumnIndex(KEY_ID); 
    int iSubject = c.getColumnIndex(KEY_SUBJECT); 
    int iWeek = c.getColumnIndex(KEY_WEEK); 
    int iDay = c.getColumnIndex(KEY_DAY); 
    int iLesson = c.getColumnIndex(KEY_LESSON); 

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     result = result + c.getString(iSubject) + c.getString(iWeek) + 
       c.getString(iDay) + c.getString(iLesson) + "\n"; 
    }//end for 

    return result; 
} 

} 

답변

3

1가 유효한 열 이름이 아닙니다 : 다음 SQL을 통해 정련하는 것은 그것이 될 것입니다 찾을 수없는 미리 감사를, 여기에 내 코드입니다

public static final String KEY_WEEK = "1"; 
public static final String KEY_DAY = "day_name"; 
public static final String KEY_LESSON = "1"; 

...

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ID 
      + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_SUBJECT 
      + " TEXT, " + KEY_WEEK + " INTEGER, " + KEY_DAY 
      + " TEXT, " + KEY_LESSON + " INTEGER);"); 

weeklesson과 같이 문자로 시작하는 열 이름을 사용하십시오.

+0

당신은 옳았습니다. –

+0

정말 고마워요! 고정되어있다. – user3379139

관련 문제