【问题标题】:Adding Information in SQLite在 SQLite 中添加信息
【发布时间】:2011-01-15 08:44:21
【问题描述】:

向 SQLite 添加信息时,我的 Android 应用程序出现问题。我对 Java/SQLite 比较陌生,虽然我已经学习了很多关于 SQLite 的教程,并且能够运行示例代码,但在运行我自己的应用程序时,我无法创建要创建的表和要导入的数据。我已将我的代码包含在两个 Java 文件 Questions(主程序)和 QuestionData(helper 类代表数据库)中。

问题.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.

问题数据.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);
}
}

任何建议都会很棒。我试过调试,这表明数据库不存在。提前感谢您的帮助。

【问题讨论】:

  • 请使用 {} 按钮格式化您的问题。更进一步:出了什么问题?在哪里?您遇到了什么错误?
  • 抱歉刚刚修复了格式我将问题活动附加到界面中的按钮上,当它运行时屏幕变黑并出现强制关闭错误。
  • 您应该能够在 Eclipse 的调试视图中看到错误和堆栈跟踪,这些信息会很有帮助。
  • TABLE_NAME 定义是否正确?声明不显示,最好在 CREATE TABLE 和 INSERT 以及 DROP TABLE 中使用它,或者根本不使用它。
  • 感谢 Luke 和其他所有做出贡献的人,我删除了常量设置,其中有一个大写字母,其他地方没有引用。我知道这会很简单,但我找不到问题所在。再次感谢!

标签: java android sql sqlite


【解决方案1】:

我删除了常量设置,其中有一个没有在其他地方引用的大写字母。我知道这会很简单,但我找不到问题所在。再次感谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2013-05-06
    相关资源
    最近更新 更多