2011-01-15 6 views
-1

SQLite에 정보를 추가 할 때 Android 앱에 문제가 있습니다. 필자는 Java/SQLite에 비교적 익숙하지 않으며 SQLite에 대한 자습서를 많이 읽었으며 예제 코드를 실행하여 자신의 응용 프로그램을 실행할 때 테이블을 만들고 가져올 수없는 데이터를 가져올 수있었습니다. 내 코드를 두 개의 Java 파일 Questions (Main Program) 및 QuestionData (헬퍼 클래스는 데이터베이스를 나타냄)에 포함 시켰습니다.SQLite에 정보 추가

Questions.java :

public class Questions extends Activity { 
private QuestionData questions; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.quiztest); 
questions = new QuestionData(this); 
try { 
Cursor cursor = getQuestions(); 
showQuestions(cursor); 
} finally { 
questions.close(); 
} 
} 

private Cursor getQuestions() { 
//Select Query 
String loadQuestions = "SELECT * FROM questionlist"; 
SQLiteDatabase db = questions.getReadableDatabase(); 
Cursor cursor = db.rawQuery(loadQuestions, null); 
startManagingCursor(cursor); 
return cursor; 
} 

private void showQuestions(Cursor cursor) { 
// Collect String Values from Query and Display them this part of the code is wokring fine when there is data present. 

QuestionData.java

public class QuestionData extends SQLiteOpenHelper { 
private static final String DATABASE_NAME = "TriviaQuiz.db" ; 
private static final int DATABASE_VERSION = 2; 

public QuestionData(Context ctx) { 
super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 

} 
@Override 
public void onCreate(SQLiteDatabase db) { 
db.execSQL("CREATE TABLE questionlist (_id INTEGER PRIMARY KEY AUTOINCREMENT, QID TEXT, QQuestion TEXT, QAnswer TEXT, QOption1 TEXT, QOption2 TEXT, QOption3 TEXT, QCategoryTagLvl1 TEXT, QCategoryTagLvl2 TEXT, QOptionalTag1 TEXT, QOptionalTag2 TEXT, QOptionalTag3 TEXT, QOptionalTag4 TEXT, QOptionalTag5 TEXT, QTimePeriod TEXT, QDifficultyRating TEXT, QGenderBias TEXT, QAgeBias TEXT, QRegion TEXT, QWikiLink TEXT, QValidationLink1 TEXT, QValidationLink2 TEXT, QHint TEXT, QLastValidation TEXT, QNotes TEXT, QMultimediaType TEXT, QMultimediaLink TEXT, QLastAsked TEXT);"); 

db.execSQL("INSERT INTO questionlist (_id, QID, QQuestion, QAnswer, QOption1, QOption2, QOption3, QCategoryTagLvl1, QCategoryTagLvl2, QOptionalTag1, QOptionalTag2, QOptionalTag3, QOptionalTag4, QOptionalTag5, QTimePeriod, QDifficultyRating, QGenderBias, QAgeBias, QRegion, QWikiLink, QValidationLink1, QValidationLink2, QHint, QLastValidation, QNotes, QMultimediaType, QMultimediaLink, QLastAsked)"+ 
"VALUES (null,'Q00001','Example','Ans1','Q1','Q2','Q3','Q4','','','','','','','','','','','','','','','','','','','','')"); 
} 

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

어떤 제안은 모든 좋은 것입니다. 나는 데이터베이스가 존재하지 않는다는 것을 암시하는 디버깅을 시도했다. 협조 해 주셔서 미리 감사드립니다.

+0

{} 버튼을 사용하여 질문의 형식을 지정하십시오. 더 자세히 : 무슨 일이 일어 났습니까? 어디에? 당신이 겪고있는 오류는 무엇입니까? – Nanne

+0

사과가 방금 고정 된 사과 인터페이스에있는 버튼에 질문 활동이 첨부되어 있습니다. 화면이 검은 색이되고 강제 닫기 오류가 나타나면 인터페이스의 버튼에 첨부됩니다. – Cam

+0

Eclipse의 디버깅보기에서 오류 및 스택 추적을 볼 수 있어야합니다.이 정보는 도움이 될 것입니다. –

답변

0

다른 곳에 언급되지 않은 대문자가있는 상수 설정을 제거했습니다. 나는 그것이 단순한 무언가가 될 것이라는 것을 알고 있었지만 나는 그 문제를 찾을 수 없었다. 다시 한 번 감사드립니다!