Lassen Sie mich damit beginnen zu erklären, wie ich Daten von SQLite einfügen und zurückgeben.SQlite gibt 0
Zunächst erstelle ich die Tabelle wie folgt aus:
private static final String CREATE_TABLE_STUDENT_LESSON = " create table STUDENTSPECIFICLESSON (_id TEXT , _viewID INTEGER PRIMARY KEY AUTOINCREMENT , _LESSON_TITLE TEXT , _LESSON_DATE TEXT , _LESSON_PROBLEM TEXT);";
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_STUDENT_LESSON);
}
Dann füge ich in die Tabelle wie folgt in SQLite:
public void insertLesson(String _id, String lessonTitle, String lessonDate, String lessonProblem) {
ContentValues contentValue = new ContentValues();
contentValue.put(SQLiteHelper._ID, _id);
contentValue.put(SQLiteHelper.LESSON_TITLE, lessonTitle);
contentValue.put(SQLiteHelper.LESSON_DATE, lessonDate);
contentValue.put(SQLiteHelper.LESSON_PROBLEM, lessonProblem);
this.getWritableDatabase().insert(SQLiteHelper.TABLE_NAME_STUDENTSPECIFICLESSON, null, contentValue);
}
Und ich stecken Sie ihn aus der Tätigkeit wie folgt aus:
sqLiteHelper.insertLesson(id,etLessonTitle.getText().toString(),currentDateandTime,etLessonProbStu.getText().toString());
Sie werden feststellen, dass ich erstellt habe _viewID INTEGER PRIMARY KEY AUTOINCREMENT
Ich verwende dies, um das spezifische zu bekommen ViewHolder in meinem Adapter.
Ich erhalte diese _viewID
durch dies zu tun:
public String getLessonViewHolderID(String _path){
String id = null;
Cursor cursor = getReadableDatabase().rawQuery("Select "+SQLiteHelper._viewID+" from "+SQLiteHelper.TABLE_NAME_STUDENTSPECIFICLESSON+" Where "
+SQLiteHelper.LESSON_TITLE +"='"+_path+"'",null);
if (cursor != null) {
cursor.moveToFirst();
}
if (cursor == null) {
} else if (cursor.moveToFirst()) {
do {
id = String.valueOf(cursor.getInt(cursor.getColumnIndex(SQLiteHelper._viewID)));
} while (cursor.moveToNext());
cursor.close();
} else {
}
return id;
}
Das funktioniert perfekt und gibt den _viewId
richtig wie erwartet.
Ich versuche dann, indem Sie diese _LESSON_PROBLEM
von SQLite zu bekommen:
public String getLessonProblem(String _id){
String id = null;
Cursor cursor = getReadableDatabase().rawQuery("Select _LESSON_PROBLEM from "+SQLiteHelper.TABLE_NAME_STUDENTSPECIFICLESSON+" Where "
+SQLiteHelper._viewID +"='"+_id+"'",null);
if (cursor != null) {
cursor.moveToFirst();
}
if (cursor == null) {
} else if (cursor.moveToFirst()) {
do {
id = String.valueOf(cursor.getInt(cursor.getColumnIndex("_LESSON_PROBLEM")));
} while (cursor.moveToNext());
cursor.close();
} else {
}
return id;
}
und von meinem Adapter
Ich nenne:
String lessonProblem = helper.getLessonProblem(viewId);
Die obige String lessonProblem
dann 0
zurück.
ich meine Datenbank und alle Daten korrekt eingesetzt ist, hier ein Bild meiner Datenbank überprüft haben:
Ich kann nicht verstehen, warum es 0 zurückkehrt, wenn klar ist es nicht, Kann mir bitte jemand helfen, auf das Problem hinzuweisen?
Kann jemand bitte sagen Sie mir, warum meine Frage wurde überstimmt? Was habe ich getan, um abzustimmen? –